迭代jQuery数组并在里面使用$ .inArray

时间:2014-02-13 23:50:26

标签: javascript jquery html arrays

以下是我的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(这意味着不应该检查任何框),所有十个框都被检查。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果找到,则

$.inArray()返回数组中项目的索引,否则返回-1

data = JSON.parse(data);
$(".chk_permission_").each(function () {
    $(this).prop("checked", $.inArray($(this).val(), data) > -1);
});

因此,如果在0位置找到该项,则会返回0,这是一个假值,因此代替ifelse块将被执行