我一直在使用此代码来获取所有已选中复选框的逗号分隔列表。
$(".hidFeedsIds").val($.map($(':checkbox[name=channel\[\]]:checked'), function (n, i) {
return n.value;
}).join(','));
现在我需要做相反的事情,我有列表但需要检查值的所有复选框。
谁能告诉我怎么能这样做?
答案 0 :(得分:7)
除了你的代码在语法上没有效果......
$('input:checkbox').filter(function() {
return valuesArray.indexOf(this.value) > -1
}).prop('checked', true);
答案 1 :(得分:4)
另一种方式,补充@Matt的答案。
$.each(valuesArray, function (i, v) {
// or use .prop() if you like, depending on jQuery version
$("input:checkbox[value='" + v + "']").attr("checked", true);
});
答案 2 :(得分:1)
的 LIVE DEMO 强>
如果您的元素值共享相同的ID,如:
<input type="checkbox" id="a" value="a" />
<input type="checkbox" id="b" value="b" />
比你能做的更多:
$('#'+ valuesArray.join(', #') ).prop('checked', true);
顺便说一下,你在原始剧本中缺少function
。应该是:
var valuesArray = $('input:checkbox:checked').map(function(){
return $(this).val();
}).get().join();