2013-04-29 13 views
11

Ich versuche, den ersten Wert von span unter verschiedenen li Elemente zu erhalten. Mein HTML-Markup ist wie folgt ...jQuery Text der ersten Spanne von jedem li

<div class="mipartrel"> 
    <div class="k-multiselect-wrap k-floatwrap"> 
     <ul role="listbox" unselectable="on" class="k-reset"> 
      <li class="k-button"> 
       <span>bat</span> 
       <span class="k-icon k-delete">delete</span> 
      </li> 
      <li class="k-button"> 
       <span>ball</span> 
       <span class="k-icon k-delete">delete</span> 
      </li> 
     </ul> 
    </div> 
</div> 

ich folgende jQuery-Code verwendet, um den Text aller span Elemente zu bekommen ...

var getdata=$('.mipartrel ul li span').first().text(); 

... aber ich bin immer nur die Wert "bat". Ich brauche jeden einzelnen Wert von der ersten span von jedem li.

+0

können Sie Blick auf diese http: // api .jquery.com/jQuery.each/ – Darshan

+0

Versuchen Sie diese Variable getdata = $ ('. mipartrel ul li span'). first(). html(); – visnu

Antwort

13

Die first Methode liefert nur das erste verglichene Element, können Sie die find Methode verwenden:

var textArray = $('.mipartrel ul li').find('span:first').map(function(){ 
    return $(this).text(); 
}).get(); // ["bat", "ball"] 

var textString = textArray.join(); // "bat, ball" 

http://jsfiddle.net/s797E/

Oder:

var getdata = $('.mipartrel ul li').find('span:first').text(); 
+0

danke. Das funktionierte und auch die Werte sind durch Komma getrennt, das ist genau das, was ich wollte danke – user1001176

+0

@ user1001176: Beachten Sie, dass das Ergebnis ein Array ist, nicht eine durch Komma getrennte Zeichenfolge. Wenn Sie das Array in eine Zeichenfolge konvertieren, werden die Zeichenfolgen als kommagetrennte Zeichenfolge aus dem Array zurückgegeben. – Guffa

+0

@Guffa danke das löschen :) Das ist, warum ich liebe diese Gemeinschaft so viel zu lernen – user1001176

4

Verwenden Sie den first-child Wähler die Spannweiten zu erhalten das sind die ersten Kinder ihrer Eltern:

var getdata = $('.mipartrel ul li span:first-child').text(); 

Demo: http://jsfiddle.net/Guffa/38NN5/

Die text Methode wird der Text von allen Elementen als eine Zeichenkette erhalten. Wenn Sie es als ein Array wollen, müssen Sie jeden Text erhalten separat:

var getdata = $('.mipartrel ul li span:first-child').map(function(){ 
    return $(this).text(); 
}).get(); 
-1

hier ist jsfiddle die Elemente zu erhalten for-Schleife

$('ul.k-reset li').each(function(){ 
     var current = $(this).find('span:first'); 
     alert(current.text()); 
    });