我有这个json对象:
[{"id_distrib":"1"},{"id_distrib":"44"},{"id_distrib":"4"}]
我想选中这些复选框:
<input id="1" class="cb_distrib_linux" type="checkbox" value="1">
Achlinux
<input id="2" class="cb_distrib_linux" type="checkbox" value="2">
Aurox
<input id="3" class="cb_distrib_linux" type="checkbox" value="3">
BackTrack
。 中新...
我这样做:
success: function(listes_distrib)
{
for(var distrib in listes_distrib)
{
$('#all_distrib_linux input:checkbox[value='+listes_distrib[distrib]+']').attr('checked', true);
}
},
我所有的复选框都被选中了。
listes_distrib[distrib] 的警报给我的是"["而不是 id。
提前感谢您的帮助。
你可以这样做:
$('#all_distrib_linux input:checkbox[value=' + listes_distrib[distrib].id_distrib +']').prop('checked', true);
您必须使用以下方法从 json 对象中获取值:
listes_distrib[0].id_distrib // return 1
listes_distrib[1].id_distrib // return 44
listes_distrib[2].id_distrib // return 4
另外,使用 .prop()
而不是 .attr()
如.prop() API Documentation
中所述:
在jQuery 1.6之前,
.attr()
方法有时采用属性值 在检索某些属性时考虑在内,这可能会导致 不一致的行为。从 jQuery 1.6 开始,.prop()
方法提供了一个 显式检索属性值的方法,同时.attr()
检索 属性。
尝试
success: function (listes_distrib) {
$.each(listes_distrib, function (_, item) {
$('#all_distrib_linux input:checkbox[value="' + item.distrib + '"]').prop('checked', true);
})
},