我一直在使用此代码来获取勾选的所有复选框的逗号分隔列表。按值检查复选框
$(".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);
的另一种方式,以补充@马特的答案。
$.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();
他们没有相同的ID,但感谢分享。 – 2013-04-08 20:48:46
@LuisTellez不客气! – 2013-04-08 20:49:20
谢谢我会试试这个,你能解释我的代码有什么问题吗?它为我工作。 – 2013-04-08 20:37:47
你忘了'function(){'。另外,不知道为什么'.join()'将数组放入字符串中。 – 2013-04-08 20:43:21
哈哈我发布了错误的代码,只是在剪贴板上没有注意到,我试过这个,它的工作正常,谢谢。 – 2013-04-08 20:47:52