2014-02-13 69 views
0

这里是我的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_。这些复选框的两个值包含数组中的数据。但是当我运行上面的代码时:对于所有返回ANYThing的用户,返回data数组中,第一个框未被选中,其余被检查。对于其他人,返回null(这意味着不应该检查框),所有十个框都被检查。

我在做什么错?

回答

1

$.inArray()如果别的发现返回的项的索引阵列中返回-1

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

所以如果该项目在0位置找到,则返回0其是falsy值,从而代替ifelse块将得到执行

+0

就是这样。谢谢。我习惯于用'in_array'在php中处理这个问题,并试图像这样使用它。谢谢! – KickingLettuce

+0

如果这是正确的答案,一定要标记它。 – squid314