J'ai le HTML suivant :
<div id="mydiv">
<div class="myclass"></div>
</div>
Je veux pouvoir utiliser un sélecteur qui sélectionne l'intérieur div
mais spécifique pour le mydiv
conteneur. Comment puis-je réaliser cela avec jQuery ?
J'ai le HTML suivant :
<div id="mydiv">
<div class="myclass"></div>
</div>
Je veux pouvoir utiliser un sélecteur qui sélectionne l'intérieur div
mais spécifique pour le mydiv
conteneur. Comment puis-je réaliser cela avec jQuery ?
Essayez :
$('#mydiv').find('.myclass');
Ou :
$('.myclass','#mydiv');
Ou :
$('#mydiv .myclass');
Références :
Il est bon d'apprendre de la find()
documentation :
Les méthodes .find() et .children() sont similaires, sauf que la méthode cette dernière ne descend que d'un seul niveau dans l'arbre DOM.
Les deux autres ne fonctionneront pas, mais le premier est correct. Les deuxièmes sélectionneront chaque class=myclass et chaque id=mydiv) je pense.
@czupe : non, alors que l'approche du sélecteur de contexte est écrite différemment, jQuery met en œuvre, en interne, la même approche. $('#mydiv').find('.myclass');
comme celle utilisée dans le premier extrait de code. D'ailleurs : "...sélectionner chaque id=mydiv
' ? Il ne devrait y avoir que jamais être une utilisation d'un id
dans une page (une id
doit être unique dans le document ).
@DavidThomas Je viens d'essayer $('#mydiv .myclass') ; et j'ai fini par sélectionner tous les divs qui ont la classe myclass plutôt que les divs de mydiv.
Ou si vous ne vous souciez pas de savoir si c'est une div
(ou si elle sera toujours un div
) vous pouvez simplifier en $("#mydiv .myclass").
@Michael - Oui, nous pouvons simplement dire .mycalss mais si nous savons que c'est un div, div.myclass rendra la recherche plus rapide.
@Shankar, il est fort probable que cela ne le rendra pas plus rapide, mais plutôt plus lent. en supposant que jquery utilise sizzle et non un natif. document.queryselectorall
il cherchera probablement de la même manière et dans votre cas, il effectuera une extra vérifier. Il est possible que les implémentations natives fassent de même.
Si vous voulez sélectionner tous les éléments qui ont l'attribut de classe "myclass", utilisez
$('#mydiv .myclass');
Si vous voulez sélectionner uniquement les éléments div qui ont l'attribut class "myclass" utilisez
$("div#mydiv div.myclass");
Pour en savoir plus sur les sélecteurs jquery, consultez les pages suivantes articles
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.