我有一些HTML:
<ul id='foo'>
<span><a>hello 1</a></span>
<span><a>hello 2</a></span>
<span><a>hello 3</a></span>
</ul>
我想获得元素的所有文本值的数组,如:
var texts = [ 'hello 1', 'hello 2', 'hello 3' ];
我正在尝试迭代每一个,jQuery中是否有某种方法可以使用选择器抓取所有这些?
答案 0 :(得分:73)
你可以使用.map()
这样做:
var myArray = $("#foo span a").map(function() {
return $(this).text();
}).get();
答案 1 :(得分:9)
或者比接受的答案稍微短一些:
$.map($("#foo span a"), $.text)
答案 2 :(得分:6)
试试这个:
$('#foo span a').map(function() { return $(this).text(); }).get();
答案 3 :(得分:2)
你可以这样做
var texts = new Array();
$('#foo > span > a').each(function()
{
texts.push( $( this ).text() );
});
答案 4 :(得分:1)
此外,使用修剪空格获取值数组的函数:
var array = $('li').map(function(){
return $.trim($(this).text());
}).get();
答案 5 :(得分:0)
试试这个:
var texts = new Array();
//or... var texts = [];
$('#foo a').each(function() {
texts.push($(this).text());
})
答案 6 :(得分:-1)
使用jquery选择器:
$("ul#foo span a")