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

20

Я пытаюсь получить и массив текста после использования текстовой функции, имея список 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
источник
  • Пожалуйста, напишите jQuery, который вы пробовали. –  j08691 15.05.2013 в 18:41
  • Я работал с jstree, из-за этого я не пастерировал свой код, потому что он слишком длинный, однако все идеи отсюда много говорят о том, как решить мою проблему. Спасибо всем –  Carlos 15.05.2013 в 18:56

5 ответов

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

Ссылка

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

    
ответ дан Mohammad Adil 15.05.2013 в 18:41
источник
  • Вы можете запрограммировать вызов на .toArray (). –  TrueWill 29.02.2016 в 20:34
  • Что делает метод get ()? BTW Мы можем сделать $ ('li'). ToArray (). Map ((li) => {return li.innerText.trim ();}) –  mangatinanda 30.09.2016 в 14:58
  • @mangatinanda @TrueНам я думаю .get и .toArray делают то же самое api.jquery.com/get –  Winand 03.04.2018 в 14:51
5

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

var resultArray = [];

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

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

$("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
источник