javascript - 如何隐藏多个元素

标签 javascript jquery arrays checkbox

我想在按下获取复选框值的按钮时隐藏多个元素,如果选中复选框,则隐藏。

我有下一个代码,但它只适用于第一个元素

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');
});

Here is a working example

<小时/>

一句台词

或者,如果您根本不需要 test 变量,您只需一行即可完成:

$("input:checked").hide('slow');

Here is an example on that

<小时/>

您的尝试存在问题

仅供引用,您的第一个示例不起作用的原因是您的选择器最终看起来像这样:

$("#numRow1,2,4")

这将选择 id 为 numRow1 的第一个元素,然后选择名为 24 的标签,这些标签不存在。您可能希望创建如下所示的选择器:

$("#numRow1,#numRow2,#numRow4")

但是,这只是一个示例,我上面的替代方法是更好的方法。

您第二次尝试的问题只是 numMsjnumMsg 之间的拼写错误。

关于javascript - 如何隐藏多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19160175/

相关文章:

javascript - Jquery 用户界面对话框

javascript - 使用 Javascript 的 Twitter 小部件

javascript - 如何用变化的分钟和秒来显示时间?

javascript - 使用 nexmo 调用外线电话

javascript - Node JS Post 请求导致 Heroku 严重错误请求超时 (503)

javascript - jQuery 将不会加载

Javascript:将二维数组分割成正方形区域并对每个区域的最大值求和

Javascript - 循环显示一些未定义的数组

javascript - 具有属性的深层复制 Javascript 数组

javascript - 如何将 span 包裹在一段 HTML 中?