使用jquery检查多个复选框

我有一个类似的数组

var values = ['1','3','4','5']; 

我有复选框列表

 

现在我想选择其值位于数组值内的复选框。 我做到了这一点

 for(var i = 0; i < values.length; i++) $("#list [value=" + values[i] + "]").attr("checked", "checked"); 

它工作正常,但我可以不用循环。

提前告诉你帮助者。

尝试

 $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", true); 

演示: 小提琴

您可以使用单个组合选择器更简洁地执行此操作:

 $('#list [value="'+values.join('"],[value="')+'"]').prop('checked',true); 

它产生一个选择器,如:

 $('#list [value="1"],[value="3"],[value="4"],[value="5"]') 

http://jsfiddle.net/mblase75/jgqm4/

您可以使用如下所示的filter ,但它与循环相同但是…

 $('#list :checkbox').filter(function () { return $.inArray(this.value, values) >= 0; }).prop('checked', true); 

你可以用$ .each替换你的for循环

JQuery的

 $.each(values, function() { $("#list [value=" + this + "]").attr("checked", "checked"); });