71 votes

Comment sélectionner tous les éléments avec un identifiant particulier dans jQuery?

J'essaie de sélectionner tous les <div> s avec le même identifiant dans jQuery. Comment fait-on ça?

J'ai essayé ça et ça n'a pas marché

 jQuery('#xx').each(function(ind,obj){
      //do stuff;
});
 

387voto

mydoghasworms Points 6190

Si il y a d'autres réponses correctes ici (c'est à dire à l'aide de classes), à partir d'un point de vue académique, il est bien sûr possible d'avoir plusieurs divs avec le même ID, et il est possible de les sélectionner avec jQuery.

Lorsque vous utilisez

jQuery("#elemid") 

il sélectionne uniquement le premier élément avec l'ID donné.

Toutefois, lorsque vous sélectionnez par attribut (par exemple, l'id dans votre cas), il renvoie tous les éléments correspondants, comme suit:

jQuery("[id=elemid]") 

Bien sûr, cela fonctionne sur n'importe quel attribut, et vous pouvez affiner votre sélection en précisant le tag en question (p. ex. div dans ton cas)

jQuery("div[id=elemid]") 

38voto

Ballsacian1 Points 6571

J'utiliserais des identifiants différents mais attribuerais à chaque DIV la même classe.

 <div id="c-1" class="countdown"></div>
<div id="c-2" class="countdown"></div>
 

Cela présente également l’avantage supplémentaire de pouvoir reconstruire les ID basés sur le retour de jQuery ('. Countdown').


Ok, qu'en est-il d'ajouter plusieurs classes à chaque compte à rebours. C'EST À DIRE:

 <div class="countdown c-1"></div>
<div class="countdown c-2"></div>
<div class="countdown c-1"></div>
 

De cette façon, vous obtenez le meilleur des deux mondes. Il permet même de répéter 'IDS'

35voto

Ayman Hourieh Points 39435

Votre document ne doit pas contenir deux divs avec le même id. C'est du code HTML non valide, et comme un résultat, le sous-jacent API DOM ne le supporte pas.

À partir du standard HTML:

id = nom [CS] Cet attribut attribue un nom à un élément. Ce nom doit être unique dans un document.

Vous pouvez attribuer des identifiants différents pour chaque div et sélectionnez les deux, à l'aide de $('#id1, #id2). Ou attribuer la même classe pour les deux éléments (.cls par exemple), et d'utiliser $('.cls') pour les sélectionner à la fois.

2voto

Paul Morie Points 6956

Pouvez-vous attribuer une classe CSS unique à chaque minuterie? De cette façon, vous pouvez utiliser le sélecteur pour la classe CSS, ce qui fonctionnerait bien avec plusieurs éléments div .

0voto

omer Points 11

Vous pouvez également essayer de placer les deux div en deux div avec des identifiants uniques. Puis sélectionnez la div par $("#div1","#wraper1") et $("#div1","#wraper2")

Voici:

 <div id="wraper1">
<div id="div1">
</div>
<div id="wraper2">
<div id="div1">
</div>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X