我想在不同的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
中的每个值。
答案 0 :(得分:14)
first
方法只返回第一个匹配的元素,您可以使用find
方法:
var textArray = $('.mipartrel ul li').find('span:first').map(function(){
return $(this).text();
}).get(); // ["bat", "ball"]
var textString = textArray.join(); // "bat, ball"
或者:
var getdata = $('.mipartrel ul li').find('span:first').text();
答案 1 :(得分: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();
答案 2 :(得分:-1)
这里是jsfiddle来获取使用for循环的元素
$('ul.k-reset li').each(function(){
var current = $(this).find('span:first');
alert(current.text());
});