当我按下一个获取复选框值的按钮时,我想要隐藏多个元素,如果勾选了复选框,则隐藏。
我有下一个代码,但它只适用于第一个元素
var checkedInputs = $("input:checked");
var test = "";
$.each(checkedInputs, function(i, val) {
test += val.value+",";
});
test = test.substring(0,(test.length-1));
$("#numRow"+test).hide('slow'); // it should to hide multiple elements, but just work with the first value
我也尝试使用数组,但它也不起作用。
var numMsj =[1, 2, 4, 22, 44,90, 100];
$.each(numMsg, function (ind, elem) {
$("#numRow"+elem).hide('slow');
});
答案 0 :(得分:3)
修改后的解决方案
你可以把隐藏在每个循环中:
var checkedInputs = $("input:checked");
$.each(checkedInputs, function(i, val) {
test += val.value+",";
$(this).hide('slow');
});
单线
或者,如果您根本不需要test
变量,则可以单行:
$("input:checked").hide('slow');
您尝试的问题
仅供参考,您的第一个示例不起作用的原因是因为您的选择器最终看起来像这样:
$("#numRow1,2,4")
将选择标识为numRow1
的第一个元素,然后选择名为2
和4
的标记,这些标记将不存在。您可能希望创建您的选择器,如下所示:
$("#numRow1,#numRow2,#numRow4")
然而,这只是一个例子,我上面的替代方法是一种更好的方法。
第二次尝试的问题只是numMsj
和numMsg
之间的拼写错误。