如何隐藏多个元素

时间:2013-10-03 13:14:08

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

1 个答案:

答案 0 :(得分:3)

修改后的解决方案

你可以把隐藏在每个循环中:

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")

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

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

然而,这只是一个例子,我上面的替代方法是一种更好的方法。

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