ajouter une classe pour des enfants de cet
Ce code ne fonctionne pas. this+'>a'
n'est pas une syntaxe valide.
Alors, comment puis-je ajouter/supprimer une classe à un enfant de this
? Dans ce cas, un a
élément.
jQuery(function ($) {
$("nav.menu>ul>li").hover(
function () {
$(this+'>a').addClass("hover_triangle");//error
},
function () {
$(this+'>a').removeClass("hover_triangle");//error
});
});
Je ne peux pas faire nav.menu>ul>li>a
car pour sélectionner toutes les a
éléments dans le menu.
Vous devez vous connecter pour publier un commentaire.
et avec le code complet:
$('a', this)
vous permet de regarder seulement à l'intérieur de lathis
objet$(this).find('a').addClass('hover_triangle')
- plus courant car il n'est pas nécessaire d'être un enfant directIl y a 2 méthodes pour la recherche des descendants de
this
. La plupart ont répondu avecfind()
(et c'est plus facile à lire), mais un sélecteur jquery peut également avoir un deuxième arfument qui estcontext
.$('a', this)
est une autre syntaxe et est le même que$(this).find('a)
. Internallly jQuery va prendre le premier cas et l'utilisationfind()
de toute façon, mais la syntaxe est valide, et beaucoup l'utilisentAPI Refrence:
jQuery( sélecteur [, contexte] )
Vous pouvez utiliser
.find()
Cela ne fera que l'accès immédiat de l'enfant des éléments de
nav.menu>ul>li
VÉRIFIER le VIOLON
Si vous voulez il suffit de sélectionner les enfants immédiats
.find('a')
sera encore imbriquée ancres.. Pour éviter que vous devez utiliser.find('> a')
ou.children('a')