我想在按下获取复选框值的按钮时隐藏多个元素,如果选中复选框,则隐藏。
我有下一个代码,但它只适用于第一个元素
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');
});
最佳答案
修改后的解决方案
您可以将隐藏放入每个循环中:
var checkedInputs = $("input:checked");
$.each(checkedInputs, function(i, val) {
test += val.value+",";
$(this).hide('slow');
});
<小时/>
一句台词
或者,如果您根本不需要 test
变量,您只需一行即可完成:
$("input:checked").hide('slow');
<小时/>
您的尝试存在问题
仅供引用,您的第一个示例不起作用的原因是您的选择器最终看起来像这样:
$("#numRow1,2,4")
这将选择 id 为 numRow1
的第一个元素,然后选择名为 2
和 4
的标签,这些标签不存在。您可能希望创建如下所示的选择器:
$("#numRow1,#numRow2,#numRow4")
但是,这只是一个示例,我上面的替代方法是更好的方法。
您第二次尝试的问题只是 numMsj
和 numMsg
之间的拼写错误。
关于javascript - 如何隐藏多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19160175/