2013-10-03 66 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