检查复选框是否存在于json对象中

时间:2013-11-07 07:12:28

标签: javascript jquery json checkbox

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

提前感谢您的帮助。

2 个答案:

答案 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);
    })
},