JQuery, получить массив текста ()

17

Я пытаюсь получить и массив текста после использования текстовой функции, имея список ul, например

<ul>
  <li>one
    <ul>
      <li>one one</li>
      <li>one two</li>
    </ul>
  </li>
</ul>

, тогда получите что-то вроде

['one', 'one one', 'one two']
    
задан Carlos 15.05.2013 в 18:39
источник

5 ответов

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

Ссылка

Демо-скрипт --> Ссылка

    
ответ дан Mohammad Adil 15.05.2013 в 18:41
источник
5

Вы просто хотите получить текст из всех ликов?

var resultArray = [];

$('li').each(function(){
    resultArray.push($(this).text());
});
    
ответ дан Evan 15.05.2013 в 18:41
источник
2

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

$("li").map(function(){ return this.innerText })

или это:

$("li").toArray().map(function(i){ return i.innerText })
    
ответ дан Nakilon 20.02.2017 в 17:49
источник
1

Вы можете сделать что-то вроде

var children = $(listholder).children();
var array = [];
var i = 0;
$.each(children, function(key, value){
array.push($(this).text());
});
    
ответ дан Kevin 15.05.2013 в 18:43
источник
0

В нескольких ответах игнорируется желаемый формат OP.

Это даст вам то, что вы хотите.

$('li').map(function(){
    var $clone = $(this).clone();
    $clone.children('*').remove();
    return $.trim($clone.text());
}).get()

Fiddle: Ссылка

    
ответ дан rtcherry 15.05.2013 в 18:49
источник