Comment puis-je sélectionner les éléments de lien du parent uniquement <ul>
dans une liste comme celle-ci?
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a>
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
Donc en css ul li a
, mais pasul li ul li a
Merci
jquery
html
css
css-selectors
Aston
la source
la source
ul.find(">li");
si vous avez le nœud "ul" comme objet JQuery dans la variable ul.Une fois que vous avez l'ul initial, vous pouvez utiliser la méthode children () , qui ne prendra en compte que les enfants immédiats de l'élément. Comme le souligne @activa, une façon de sélectionner facilement l'élément racine est de lui donner une classe ou un identifiant. Ce qui suit suppose que vous avez une racine ul avec id
root
.la source
$('ul').first().children('li')
peut également être utiliséComme indiqué dans d'autres réponses, la méthode la plus simple consiste à identifier de manière unique l'élément racine (par ID ou nom de classe) et à utiliser le sélecteur descendant direct.
Cependant, je suis tombé sur cette question à la recherche d'une solution qui fonctionnerait sur des éléments sans nom à des profondeurs variables du DOM.
Cela peut être réalisé en vérifiant chaque élément et en s'assurant qu'il n'a pas de parent dans la liste des éléments correspondants. Voici ma solution , enveloppée dans un sélecteur jQuery 'topmost'.
En utilisant cela, la solution au message d'origine est:
JsFiddle complet disponible ici .
la source
:topmost
- essayez d'utiliser.parentElement.closest(selector)
. Comme toujours, IE + Edge sont les seuls à ne pas le supporter> :-( alors voici un polyfill pastebin.com/JNBk77VmVous pouvez simplement l'utiliser.
Voir exemple: https://codepen.io/gmkhussain/pen/XzjgRE
la source
Vous voudrez peut-être essayer ceci si les résultats sont toujours transmis aux enfants, dans de nombreux cas, JQuery s'appliquera toujours aux enfants.
En utilisant cette méthode: E> F Correspond à tout élément F qui est un enfant d'un élément E.
Indique à JQuery de rechercher uniquement les enfants explicites. http://www.w3.org/TR/CSS2/selector.html
la source
Vous pouvez aussi utiliser
$("ul li:first-child")
pour obtenir uniquement les enfants directs de l'UL.Je suis d'accord cependant, vous avez besoin d'un identifiant ou de quelque chose d'autre pour identifier l'UL principale, sinon il les sélectionnera tous. Si vous aviez un div avec un identifiant autour de l'UL, la chose la plus simple à faire serait
$("#someDiv > ul > li")
la source
:first-child
. Cela sélectionnera le "premierli
de chaqueul
". Le message original demandait «tousli
les premiersul
».Essaye ça:
la source
J'ai eu des problèmes avec les classes imbriquées de n'importe quelle profondeur, alors j'ai compris. Il ne sélectionnera que le premier niveau qu'il rencontre d'un objet Jquery contenant:
la source
1
il y a probablement de nombreuses autres façons
la source
le deuxième .form-item au niveau de l'arborescence enfant du .add_to_cart
la source