以下是我的Array
,这来自jQuery
.post
次成功function
:
data = JSON.parse(data);
$(".chk_permission_").each(function() {
if ($.inArray($(this).val(), data)) {
$(this).prop("checked", true);
} else {
$(this).prop("checked", false);
}
});
当我alert
数据时,我得到正确的两个值。我有十个复选框,都有类chk_permission_
。这些复选框中的两个值包含数组中的数据。但是,当我运行上面的代码时:对于在data
数组中返回ANYThing的所有用户,第一个框未选中,其余部分被选中。对于其他人来说,返回null(这意味着不应该检查任何框),所有十个框都被检查。
我做错了什么?
答案 0 :(得分:1)
$.inArray()返回数组中项目的索引,否则返回-1
data = JSON.parse(data);
$(".chk_permission_").each(function () {
$(this).prop("checked", $.inArray($(this).val(), data) > -1);
});
因此,如果在0
位置找到该项,则会返回0
,这是一个假值,因此代替if
块else
块将被执行