Подтвердить что ты не робот

Получать массив текстовых значений с помощью селектора вместо итерации?

У меня есть 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 просто захватить все из них с помощью селектора?

4b9b3361

Ответ 2

Попробуйте следующее:

$('#foo span a').map(function() { return $(this).text(); }).get();

Ответ 3

Или немного короче принятого ответа:

$.map($("#foo span a"), $.text)

Ответ 4

вы можете сделать это, как это

var texts = new Array();

$('#foo > span > a').each(function() 
{ 
  texts.push( $( this ).text() ); 
});

Ответ 5

Кроме того, функция для получения массива значений с обрезанными пространствами:

var array = $('li').map(function(){
               return $.trim($(this).text());
            }).get();

Ответ 6

Попробуйте следующее:

var texts = new Array();
//or... var texts = [];

$('#foo a').each(function() {
    texts.push($(this).text());
})

Ответ 7

используйте селектор jquery:

$("ul#foo span a")