web-dev-qa-db-fra.com

Jquery, obtenir un tableau de text ()

J'essaie d'obtenir un tableau de texte après avoir utilisé la fonction texte, avec une liste ul comme

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

alors obtenir quelque chose comme

['one', 'one one', 'one two']
30
Carlos
var array = $('li').map(function(){
               return $.trim($(this).text());
            }).get();

http://api.jquery.com/map/

Démo Fiddle -->http://jsfiddle.net/EC4yq/

48
Mohammad Adil

Vous voulez juste obtenir le texte de tous les li?

var resultArray = [];

$('li').each(function(){
    resultArray.Push($(this).text());
});
7
Evan

Essaye ça:

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

ou ca:

$("li").toArray().map(function(i){ return i.innerText })
6
Nakilon

Vous pourriez faire quelque chose comme 

var children = $(listholder).children();
var array = [];
var i = 0;
$.each(children, function(key, value){
array.Push($(this).text());
});
2
Kevin

Plusieurs réponses ignorent le format souhaité par l'OP.

Cela vous donnera ce que vous voulez.

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

Fiddle: http://jsfiddle.net/pE9PR/

0
rtcherry