问题 jQuery获取每个li的第一个跨度的文本


我想获得第一个价值 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


2305
2018-04-29 11:37


起源

你可以看看这个 api.jquery.com/jQuery.each - Darshan
试试这个var getdata = $('。mipartrel ul li span')。first()。html(); - visnu


答案:


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();

13
2018-04-29 11:40



谢谢。这是有效的,而且值也是用逗号分隔的,这正是我想要的感谢 - user1001176
@ user1001176:注意结果是数组,而不是逗号分隔的字符串。如果将数组转换为字符串,它将以逗号分隔的字符串形式返回数组中的字符串。 - Guffa
@Guffa谢谢清除这个:)这就是为什么我喜欢这个社区这么多要学习 - user1001176
简单的解决方案亲爱的答案! :d - Harsha


使用 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();

4
2018-04-29 11:40





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

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

-1
2018-04-29 11:48