2013-05-15 55 views
18

我試圖使用文本功能後能得到和文字的排列,有UL列表像jQuery的獲取文本()的數組

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

然後得到類似

['one', 'one one', 'one two'] 
+2

請發表您已經嘗試了jQuery。 – j08691

+0

我正在使用jstree,因爲我沒有貼我的代碼,因爲它太長,但是,從這裏的所有想法在如何解決我的問題上幫助了很多。感謝所有 – Carlos

回答

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

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

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

+0

您可能希望將調用鏈接到'.toArray()'。 – TrueWill

+0

get()方法做什麼?順便說一句,我們可以做'$('li')。toArray()。map((li)=> {return li.innerText.trim();})' – mangatinanda

5

你只是想從所有的李的文字?

var resultArray = []; 

$('li').each(function(){ 
    resultArray.push($(this).text()); 
}); 
1

你可以做類似

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

幾個問題的答案忽略了OP的所需的格式。

這會給你你想要的。

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

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

2

試試這個:

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

或本:

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