2015-07-10 92 views
3

我想存儲數組中同一類的幾個列表的所有列表項。如何使用jQuery存儲數組中的列表項目

的爲例:

<ul class="myList"> 
    <li>item 1</li> 
    <li>item 2</li> 
</ul> 

<ul class="myList"> 
    <li>item 3</li> 
    <li>item 4</li> 
    <li>item 5</li> 
</ul> 

腳本文件:

var arr_list_items = []; 

$('ul.myList').each(function(){ 
    while(!$(this).empty()) { 
    list_item = $(this).find('li:first'); 
    arr_list_items.push(list_item); 
    list_item.remove(); 
    } 
}); 

項目被刪除列表,但數組返回空。

謝謝

+0

您可以添加代碼'console.info (1111)';在你'while'裏面,你會發現它不能控制 –

回答

2
var array = []; 
$('.myList li').each(function(i, li) { 
    array.push($(li)); 
}); 
2

不需要任何複雜的邏輯。

可以使用.get() method來檢索jQuery對象匹配的元素的數組:

Example Here

var arr_list_items = $('.myList li').remove().get(); 

console.log(arr_list_items); 
// [li, li, li, li, li] 

或者,您也可以使用.map() method

Example Here

var arr_list_items = $('.myList li').remove().map(function() { 
    return this; 
}).get(); 
1
var arr_list_items = []; 

$('ul.myList').each(function (i,n) { 
    $(n).find('li').each(function (j, m) { 
     arr_list_items.push(m); 
    }).remove(); 
}); 

for (var i = 0; i < arr_list_items.length; i++) { 
    console.info(arr_list_items[i]); 
} 

因爲我的英語很差,所以我無法解釋的代碼,但我認爲你可以把它理解

0

var arr_list_items = []; 
 

 
$('ul.myList').each(function(){ 
 
    $(this).find('li').each(function(){ 
 
    arr_list_items.push(this); 
 
    $(this).remove(); 
 
    }); 
 
}); 
 

 
console.info(arr_list_items);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="myList"> 
 
    <li>item 1</li> 
 
    <li>item 2</li> 
 
</ul> 
 

 
<ul class="myList"> 
 
    <li>item 3</li> 
 
    <li>item 4</li> 
 
    <li>item 5</li> 
 
</ul>

相關問題