Je veux sélectionner des éléments de liste qui sont des enfants immédiats de #nav, qui n'ont pas eux-mêmes d'enfants immédiats avec une classe «active».
C'est ce que je pense que cela devrait être, mais cela ne fonctionne pas: p>
4 Réponses :
pour cette jQuery a le non sélecteur
Vous pouvez faire quelque chose comme < / p>
Ce n'est pas ce que Trevor recherche. Il veut Les enfants de #nav, qui n'ont pas eux-mêmes d'eux-mêmes des enfants immédiats avec une classe "active" b>.
a manqué l'un des enfants là-bas, corrigé cela.
Les éléments qu'il souhaite sélectionner sont les éléments LI. Votre sélecteur retournerait leurs enfants.
Bon point, le libellé est un peu difficile, mais je vois ce qu'il cherche, reviendra à nouveau.
J'aime vraiment la solution de Ken, mais juste pour une autre prise.
Vous pouvez ajouter la classe active à vos éléments de liste au lieu de vos liens à l'intérieur. Ensuite, votre sélecteur pourrait ressembler à: p> Si vous souhaitez styler les liens en fonction de la classe active, votre CSS pourrait ressembler à ceci: P> #nav li.active a{background-color:red;}
Pourquoi cette réponse a-t-elle été évitée deux fois? S'il est incorrect, quelle partie ne fonctionne pas et comment puis-je l'améliorer?
Cette réponse est incorrecte car elle renvoie les enfants de li code>. Trevor veut le
li code> éléments eux-mêmes. Re-lisez la question.
Merci! J'ai raté cette partie, je vais changer ma réponse pour refléter cela.
Vous devrez utiliser le filtre JQuery's's's's's's's's CODE> Fonction:
$('#nav > li').filter(function() { return !($(this).children().is('.active')); })
C'est encore mieux que votre première solution. Je pense que vous auriez dû garder celui-là quelque part comme alternatif. Ou y avait-il un problème avec ça?
Non, celui-ci semble fonctionner par intermittence. Je retourne à la réponse précédente.
Cela retournera Li éléments qui n'ont pas d'actif, je ne crois pas que cela vérifie les enfants des éléments LI pour la classe active.
Je pense Jeremy b. B> a raison. La solution «Sélecteur uniquement» ne semble pas tester contre les enfants, mais plutôt le Li code> uniquement.
Je suis d'accord. Sortez la réponse seulement et laissant le fichier code>
@Ken: bon appel. J'allais offrir une réponse qui utilisait chacun () code>, mais
filtre () code> est une solution beaucoup i> plus belle.
Merci Ken, c'est parfait ... et merci à tous les autres pour leur aide!
@ Trevor, content que vous ayez trouvé votre réponse et bienvenue à Stackoverflow! Veuillez cliquer sur la coche de la réponse de Ken afin qu'il soit crédité pour la solution.
@Trevor, ce n'est pas comme ça que tu le fais! Voir ma réponse: $ ('# Nav> Li: non (: a (A.active))'). Je ne pense pas que vous ayez accepté la meilleure réponse.
Voici comment vous le faites:
$('#nav > li:not(:has(a.active))')