2010-12-15 6 views
2

J'ai eu tableau de div id j'ai besoin de fermer tout ce div. j'avais utilisé le code ci-dessous. pas fonctionne. comment faire çaComment faire pour passer id dynamiquement dans jquery

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

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

}); 

i besoin de passer id dynamiquement $("#"+id_value)

+0

similaires: http://stackoverflow.com/questions/4448924/getting-div- id-values-from-a-string-et-manupulating-it – sje397

Répondre

3

Vous pouvez utiliser la méthode Array join comme suit:

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

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

Vous pouvez voir une démo de travail ici: http://www.jsfiddle.net/qHVg7/

1

Essayez de les passer sous forme de chaînes? à savoir:

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

Vous pouvez également créer programattically un Multiple Selector comme d'autres l'ont suggéré, mais si vous ne l'aimez pas l'idée d'avoir un sélecteur à long 10000 caractères, et si vos ID suivent déjà une convention de nommage (par exemple comme 'myid_1', 'myid_2', 'myid_10', etc.), alors je suggère d'utiliser le startsWith selector, comme ceci:

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

Vous pouvez tout simplement transformer en un multiple selector via .join(), comme ceci:

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

Ce serait essentiellement pratique:

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

.hide() ensembles display: none, mais d'une manière qui .show() restituera à la valeur précédente.

Questions connexes