2009-07-10 9 views
26

Je ne veux sélectionner que les éléments du premier "niveau".jQuery sélectionner les éléments au 1er "niveau"

Ex:

<div id="BaseElement"> 
    <p>My paragraph 0</p> 
    <div> 
    <span>My Span 0</span> 
    <span>My Span 1</span> 
    </div> 
    <span>MySpan 2</span> 
    <span>MySpan 3</span> 
    <p>My paragraph 1</p> 
</div> 

Disons que vous avez obtenu le nœud BaseElement.

var Element = $("div#BaseElement"); 

Comment puis-je récupérer des noeuds uniquement à partir du noeud de l'élément de base?

$("div#BaseElement span") 

ne devrait donner lieu à l'obtention MySpan 2 et MySpan 3.

Répondre

8

Dans l'API jQuery, quand il fait référence aux « descendants » cela signifie que tous les niveaux, et quand il se réfère aux « enfants » cela signifie que seul le premier niveau

cela, vous obtiendrez tous les enfants de premier niveau (dans votre par exemple le premier p, div, 2 travées et dernier p)

$('#BaseElement > *') 
1

Se référer également à What is the difference direct descendent (>) vs. descendant in jQuery selectors? des différences entre l'espace et > dans les sélecteurs. Avec l'espace est égal à find() et > est égal à enfants(). En d'autres termes, les paires suivantes sont équivalentes,

$("#BaseElement").children("span"); 
$("#BaseElement > span"); 

tous les enfants ainsi que leurs descendants:

$("#BaseElement").find("span"); 
$("#BaseElement span"); 
Questions connexes