Ответ 1
Вы можете сделать это с помощью .map()
следующим образом:
var myArray = $("#foo span a").map(function() {
return $(this).text();
}).get();
У меня есть 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 просто захватить все из них с помощью селектора?
Вы можете сделать это с помощью .map()
следующим образом:
var myArray = $("#foo span a").map(function() {
return $(this).text();
}).get();
Попробуйте следующее:
$('#foo span a').map(function() { return $(this).text(); }).get();
Или немного короче принятого ответа:
$.map($("#foo span a"), $.text)
вы можете сделать это, как это
var texts = new Array();
$('#foo > span > a').each(function()
{
texts.push( $( this ).text() );
});
Кроме того, функция для получения массива значений с обрезанными пространствами:
var array = $('li').map(function(){
return $.trim($(this).text());
}).get();
Попробуйте следующее:
var texts = new Array();
//or... var texts = [];
$('#foo a').each(function() {
texts.push($(this).text());
})
используйте селектор jquery:
$("ul#foo span a")