11

我试图获得span不同li元素下的第一个值。我的 HTML 标记如下...

<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>

我使用以下 jQuery 代码来获取所有span元素的文本...

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

...但我只得到价值"bat"。我需要span每个li.

4

3 回答 3

15

first方法只返回第一个匹配的元素,可以使用该find方法:

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/

或者:

var getdata = $('.mipartrel ul li').find('span:first').text();
于 2013-04-29T11:40:13.950 回答
4

使用first-child选择器获取作为其父项的第一个子项的跨度:

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

演示:http: //jsfiddle.net/Guffa/38NN5/

text方法将从所有元素中获取文本作为单个字符串。如果要将其作为数组,则需要分别获取每个文本:

var getdata = $('.mipartrel ul li span:first-child').map(function(){
  return $(this).text();
}).get();
于 2013-04-29T11:40:50.580 回答
-1

这是使用 for 循环获取元素的jsfiddle

    $('ul.k-reset li').each(function(){
       var current = $(this).find('span:first');
        alert(current.text());
     });
于 2013-04-29T11:48:24.750 回答