使用选择器而不是迭代获取文本值数组?

时间:2010-08-16 18:57:04

标签: jquery

我有一些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中是否有某种方法可以使用选择器抓取所有这些?

7 个答案:

答案 0 :(得分:73)

你可以使用.map()这样做:

var myArray = $("#foo span a").map(function() {
                 return $(this).text();
              }).get();

You can test it out here

答案 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")