2013-04-29 27 views
11

Tôi đang cố gắng lấy giá trị đầu tiên là span trong các phần tử li khác nhau. đánh dấu HTML của tôi là như sau ...jQuery để nhận văn bản của khoảng đầu tiên của mỗi 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> 

tôi đã sử dụng mã jQuery sau để có được văn bản của tất cả các yếu tố span ...

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

... nhưng tôi chỉ đang nhận được giá trị "bat". Tôi cần mỗi và mọi giá trị từ số span đầu tiên của mỗi li.

+0

bạn có thể có cái nhìn tại http: // api .jquery.com/jQuery.each/ – Darshan

+0

Hãy thử var getdata = $ ('. mipartrel ul li span'). đầu tiên(). html(); – visnu

Trả lời

13

Phương pháp first chỉ trả về các yếu tố phù hợp đầu tiên, bạn có thể sử dụng find phương pháp:

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/

Hoặc:

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

cảm ơn bạn. điều này làm việc và cũng là các giá trị được phân cách bởi dấu phẩy thats chính xác những gì tôi muốn cảm ơn – user1001176

+0

@ user1001176: Lưu ý rằng kết quả là một mảng, không phải là một chuỗi phân tách bằng dấu phẩy. Nếu bạn chuyển đổi mảng thành một chuỗi, nó sẽ trả về các chuỗi từ mảng dưới dạng một chuỗi được phân tách bằng dấu phẩy. – Guffa

+0

@Guffa cảm ơn thanh toán bù trừ điều này :) Thats lý do tại sao tôi yêu cộng đồng này rất nhiều để tìm hiểu – user1001176

4

Sử dụng selector first-child để có được những nhịp đó là đứa con đầu tiên của cha mẹ của họ:

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

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

Phương pháp text sẽ nhận được văn bản từ tất cả các yếu tố như là một chuỗi duy nhất. Nếu bạn muốn nó như một mảng, bạn cần phải nhận được mỗi văn bản riêng biệt:

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

đây là jsfiddle để có được các yếu tố sử dụng vòng lặp for

$('ul.k-reset li').each(function(){ 
     var current = $(this).find('span:first'); 
     alert(current.text()); 
    }); 
Các vấn đề liên quan