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

jQuery获取每个li的第一个跨度的文本,jquery,Jquery,我试图获得不同li元素下span的第一个值。我的HTML标记如下所示 <div class="mipartrel"> <div class="k-multiselect-wrap k-floatwrap"> <ul role="listbox" unselectable="on" class="k-reset"> <li class="k-button"> <sp

我试图获得不同
li
元素下
span
的第一个值。我的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>

…但我只得到值
“bat”
。我需要每个
li
的第一个
span
中的每个值
first
方法只返回第一个匹配的元素,您可以使用
find
方法:

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

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

或:


使用
first child
选择器获取其父级的第一个子级跨距:

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

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

var getdata = $('.mipartrel ul li span:first-child').map(function(){
  return $(this).text();
}).get();
下面是使用for循环获取元素的步骤

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

您可以查看这个函数,并尝试使用这个变量getdata=$('.mipartrel ul li span').first().html();非常感谢。这是有效的,而且值之间用逗号分隔,这正是我想要的thanks@user1001176:请注意,结果是一个数组,而不是逗号分隔的字符串。如果将数组转换为字符串,它将以逗号分隔的字符串形式返回数组中的字符串。@Guffa感谢您清除此项:)这就是为什么我非常喜欢这个社区
var getdata = $('.mipartrel ul li span:first-child').map(function(){
  return $(this).text();
}).get();
    $('ul.k-reset li').each(function(){
       var current = $(this).find('span:first');
        alert(current.text());
     });