2010-12-15 100 views
2

我有數組ID我需要關閉所有的div。我曾經使用過下面的代碼。不起作用。這個怎麼做。如何在jQuery中動態傳遞ID

$.each([id_1, id_2], function(index, value) { 
    //alert(index + ': ' + value); 

$("#"+value).css({'display' : 'none'}); 

}); 

我需要動態傳遞id作爲$("#"+id_value)

+0

類似:http://stackoverflow.com/questions/4448924/getting-div- ID值,從-A-字符串和manupulating,它 – sje397 2010-12-15 10:37:04

回答

3

可以使用Array join方法如下:

var idsInJquerySyntax = '#' + [id_1, id_2, id_3].join(', #'); 

$(idsInJquerySyntax).css({ 
display: 'none' 
}); 

這裏你可以看到一個工作演示:http://www.jsfiddle.net/qHVg7/

1

儘量將它們作爲字符串?即:

$.each(['id_1', 'id_2'], ... 

您也可以programattically建立一個Multiple Selector如其他人所說的,但如果你不喜歡有10000個字符長選擇的想法,如果你的ID已經遵循命名約定(如作爲 'myid_1', 'myid_2', 'myid_10' 等),那麼我會建議使用startsWith selector,像這樣:

$("[id^=myid]").hide(); // hide all elements with ID starting with 'myid' 
0

你可以只通過.join()把它變成一個multiple selector,像這樣:

$('#'+[id_1, id_2].join(',#')).hide(); 

這基本上可以做:

$('#someId1,#someId2').css({'display' : 'none'}); 

.hide()display: none,但在某種程度上.show()將其恢復到以前的值。