0

我有这个 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。

提前感谢您的帮助。

4

2 回答 2

2

尝试

success: function (listes_distrib) {
    $.each(listes_distrib, function (_, item) {
        $('#all_distrib_linux input:checkbox[value="' + item.distrib + '"]').prop('checked', true);
    })
},
于 2013-11-07T07:16:33.157 回答
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()而不是.attr()如中所述.prop() API Documentation

在 jQuery 1.6 之前,该.attr()方法有时会在检索某些属性时考虑属性值,这可能会导致行为不一致。从 jQuery 1.6 开始,该.prop()方法提供了一种在检索属性的同时显式检索属性值的方法.attr()

于 2013-11-07T07:15:44.330 回答