我有一个类似
的数组var values = ['1','3','4','5'];
我有复选框列表
<div id='list'>
<input type='checkbox' value='1' />
<input type='checkbox' value='2' />
<input type='checkbox' value='3' />
<input type='checkbox' value='4' />
<input type='checkbox' value='5' />
<input type='checkbox' value='6' />
<input type='checkbox' value='7' />
<input type='checkbox' value='8' />
<input type='checkbox' value='9' />
<input type='checkbox' value='10' />
</div>
现在我想选择其值位于数组值内的复选框。我做了这个
for(var i = 0; i < values.length; i++)
$("#list [value=" + values[i] + "]").attr("checked", "checked");
它工作正常,但我可以不用循环来完成。
提前感谢帮助者。
答案 0 :(得分:22)
答案 1 :(得分:8)
您可以使用单个组合选择器更简洁地执行此操作:
$('#list [value="'+values.join('"],[value="')+'"]').prop('checked',true);
产生一个选择器,如:
$('#list [value="1"],[value="3"],[value="4"],[value="5"]')
答案 2 :(得分:2)
您可以使用下面的filter
,但它与for
循环相同..
$('#list :checkbox').filter(function () {
return $.inArray(this.value, values) >= 0;
}).prop('checked', true);
答案 3 :(得分:1)
您可以使用$ .each
替换for循环<强> JQuery的强>
$.each(values, function() {
$("#list [value=" + this + "]").attr("checked", "checked");
});