jQuery循环复选框和tick其中id存在于数组中

时间:2010-10-19 12:54:10

标签: jquery json loops

我正在编写一个脚本,它将获得一个id的JSON数组。根据结果​​,然后我遍历页面上的所有复选框,并检查JSON数组中id存在的方框。

复选框名称如此name =“name [id]”id =“name [id]”

如何循环复选框并确定JSON数组中是否存在id([和]之间)?

2 个答案:

答案 0 :(得分:1)

Patrick是正确的,在属性中使用[]是无效的。假设您的HTML看起来像这样:

<input type="checkbox" name="name1" /><br/>
<input type="checkbox" name="name2" /><br/>
<input type="checkbox" name="name3" /><br/>
<input type="checkbox" name="name4" /><br/>

您可以使用Attribute Ends With Selector

var ids = new Array();
ids[0] = 1;
ids[1] = 3;

$.each(ids, function(index, value) {
    $("input[name$='name" + value + "']").attr("checked", "checked");
});

答案 1 :(得分:0)

在HTML4 ID属性中使用[]无效。

也就是说,您可以执行.filter()检查数组中每个项目的ID:

var array; //holds the Array from the JSON

$(':checkbox').filter(function() {
    var id = this.id.slice( this.id.indexOf('[') + 1, -1 );
    return $.inArray( id, array ) > -1;
})
  .attr('checked','checked');