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