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

我也尝试过使用数组,但它也不起作用。

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

1 回答 1

3

修改后的解决方案

您可以将隐藏放在每个循环中:

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,然后选择名为2and的标签4,这将不存在。您可能希望创建如下所示的选择器:

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

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

您第二次尝试的问题只是 和 之间的numMsj错字numMsg

于 2013-10-03T13:17:08.557 回答