2010-02-15 5 views
2

J'ai une liste comme ceci:manière la plus appropriée pour sélectionner la première occurrence d'un élément enfant dans jQuery

<ul id="topElement"> 
    <li></li> 
    <li> 
    <ul> 
     <li> 
     <ul> 
      <li> 
      </li> 
     </ul> 
     </li> 
    </ul> 
    <li> 

En utilisant jQuery, quelle est la meilleure aka manière la plus efficace pour faire référence à la première occurrence d'un ul de #topElement.

C'est-à-dire, je ne veux pas ...

$("#topElement ul") 

qui renvoie tous les éléments ul dans l'arbre. Je ne veux que le premier ul.

Merci,

Répondre

4

Je pense que si vous voulez que le premier « ul » vous trouverez à l'intérieur du contenu de la « ul » appelé « topElement », alors vous voulez ceci:

$('ul#topElement ul:first') 
+1

pourquoi ul # topElement? id est unique. #topElement devrait être plus rapide. – David

+0

Vous avez raison bien sûr, mais parfois je le fais juste pour m'aider à ne pas être confus. Ce n'est pas nécessaire, et en fait il peut revenir et vous mordre si vous changez beaucoup votre balisage. Dans ce cas, je pense que j'essayais juste de clarifier comment la solution liée au problème se posait. Je doute cependant qu'il y ait une différence de performance mesurable, car sizzle sait exactement ce que vous savez sur la sémantique d'une valeur "id" :-) – Pointy

+0

Il fait ce qu'il dit sur la boîte. :) – Travis

0
$("ul#topElement:first") 
+0

Je ne pense pas que ce soit juste - il veut le premier "ul" sous le "ul" supérieur. – Pointy

0

$("#topElement > li > ul:first")

1

$ ("# topElement ul"). First();

Questions connexes