43

我试图在使用 text 函数后获取文本数组,有一个类似的 ul 列表

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

然后得到类似的东西

['one', 'one one', 'one two']
4

5 回答 5

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

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

演示小提琴--> http://jsfiddle.net/EC4yq/

于 2013-05-15T16:41:52.260 回答
12

尝试这个:

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

或这个:

$("li").toArray().map(function(i){ return i.innerText })
于 2017-02-20T16:49:29.430 回答
10

您只想从所有 li 中获取文本?

var resultArray = [];

$('li').each(function(){
    resultArray.push($(this).text());
});
于 2013-05-15T16:41:27.073 回答
3

一些答案忽略了 OP 所需的格式。

这会给你你想要的。

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

小提琴:http: //jsfiddle.net/pE9PR/

于 2013-05-15T16:49:49.577 回答
2

你可以做类似的事情

var children = $(listholder).children();
var array = [];
var i = 0;
$.each(children, function(key, value){
array.push($(this).text());
});
于 2013-05-15T16:43:06.570 回答