2010-05-18 3 views
1

avec le code HTML:jquery - Sélectionnez pas d'enfants

<div> 
    <span class="a">a 
     <span class="b">b</span> 
    </span> 
<div> 

Est-il possible de choisir juste la première travée et pas des enfants?

Appel $('div span.a').text() imprime le « b » dans le nœud enfant, ainsi que le « a »

Répondre

2
var span1 = $("span.a").clone(); 
$(span1).children().remove(); 
var text = $(span1).text(); 
4

Vous serait probablement mieux écrire html mieux structuré comme:

<div> 
    <span class="c"> 
     <span class="a">a</span> 
     <span class="b">b</span> 
    </span> 
</div> 

Mais vous pourrait faire ceci:

var text = $('div span.a').clone().find('*').remove().end().text(); 
+0

Il vaut aussi la peine d'ajouter un '.trim()' après le '.text()', en fonction de ce que vous êtes chante il fait des affaires avec des espaces. J'ai juste couru dans ce moi-même et j'ai pensé que je le mentionnerais. – Wakeuphate