我一直在使用此代码来获取所有选中复选框的逗号分隔列表。
$(".hidFeedsIds").val($.map($(':checkbox[name=channel\[\]]:checked'), function (n, i) {
return n.value;
}).join(','));
现在我需要做相反的事情,我有列表,但需要检查值所在的所有复选框。
谁能告诉我如何做到这一点?
我一直在使用此代码来获取所有选中复选框的逗号分隔列表。
$(".hidFeedsIds").val($.map($(':checkbox[name=channel\[\]]:checked'), function (n, i) {
return n.value;
}).join(','));
现在我需要做相反的事情,我有列表,但需要检查值所在的所有复选框。
谁能告诉我如何做到这一点?
除了您的代码在语法上无效的事实之外......
$('input:checkbox').filter(function() {
return valuesArray.indexOf(this.value) > -1
}).prop('checked', true);
另一种方式,补充@Matt的答案。
$.each(valuesArray, function (i, v) {
// or use .prop() if you like, depending on jQuery version
$("input:checkbox[value='" + v + "']").attr("checked", true);
});
如果您的元素值共享相同的 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();