2013-10-03 65 views
0

当我按下一个获取复选框值的按钮时,我想要隐藏多个元素,并且如果复选框被选中,它将被隐藏。如何隐藏多个元素

我有一个代码,但它只是第一个元素

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 

我也试图与阵列工作,但它doen't工作了。

var numMsj =[1, 2, 4, 22, 44,90, 100];  
$.each(numMsg, function (ind, elem) { 
    $("#numRow"+elem).hide('slow'); 
}); 

回答

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

这将选择id为numRow1的第一个元素,然后标签叫24,这将不存在。你想创建你选择看起来像以下:

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

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

第二次尝试的问题只是numMsjnumMsg之间的错字。

+1

谢谢!它工作得很好! – Kakitori