2010-06-11 4 views
3

$ (this + "p"). SlideDown ("lent");J'essaie de sélectionner le frère adjacent de "this" dans jquery

$ (this) + $ ("p"). SlideDown ("lent");

$ ("this + p"). SlideDown ("lent");

ne fonctionne pas.

+0

Merci à Tim Ridgely et S Pangborn – phil

+0

Ce '$ ("this + p"). slideDown ("lent"); 'devrait fonctionner comme il est normalisé par le W3C pour HTML5/CSS3 - On dirait que jQuery doit implémenter cela encore (Jan 2013) - Hurrrrry up! – ppumkin

Répondre

1

Next. Cependant, assurez-vous que l'élément "p" est directement adjacent. Sinon, vous voudrez utiliser nextAll.

+0

Votre réponse est incorrecte car vous ne pouvez pas sélectionner les éléments DOM avec le suivant. Seuls les éléments avec un ID ou une classe. Au lieu de cela, '.children()' -1 – ppumkin

+0

Utilisez 'children()' pour obtenir un élément ** adjacent **? Cela ne retournerait-il pas les enfants de «ceci»? –

2

Oui, votre syntaxe est mauvaise. Vous devez utiliser la fonction jQuery Sibling:

$(this).siblings().find("p").slideDown("slow"); 

Le site de l'API jQuery est génial pour regarder des trucs comme ça, je compte sur elle presque tous les jours. Je garderais un oeil dessus.

+0

La syntaxe n'est pas mauvaise. C'est en fait une syntaxe W3C normalisée - Mais jQuery ne l'interprète pas correctement? – ppumkin

0

jQuery ne semble pas avoir appliqué cela? Peut-être que la syntaxe que nous essayons d'utiliser est incorrecte.

next() ne peut sélectionner que des éléments avec un ID ou une classe - Pas seulement un élément DOM nu comme prévu.

Utilisez plutôt. > signifie uniquement sélectionner les premiers rangs.

$('body > div').hide();

Mais cela donne exactement le même résultat

$('body').children('div').hide();

Mais,

  • Suivant
  • $('body + div').hide();

et

  • Précédent
  • $('body ~ div').hide();

ne semblent pas fonctionner comme prévu? Mais jQuery l'utiliser comme exemple pour la sélection CSS ...

Peut-être il y a une syntaxe complexe pour y parvenir, mais je ne pouvais pas le comprendre ...

Questions connexes