我有这个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
... CenOS ... ...
我这样做:
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。
提前感谢您的帮助。
答案 0 :(得分:2)
你可以这样做:
$('#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() API Documentation
中提到的.prop()
代替.attr()
:
在jQuery 1.6之前,
.attr()
方法有时会获取属性值 在检索可能导致的某些属性时会考虑到这一点 不一致的行为。 从jQuery 1.6 开始,.prop()
方法提供了一个.attr()
检索时显式检索属性值的方法 属性。
答案 1 :(得分:2)
尝试
success: function (listes_distrib) {
$.each(listes_distrib, function (_, item) {
$('#all_distrib_linux input:checkbox[value="' + item.distrib + '"]').prop('checked', true);
})
},