如何使用jQuery存储数组中的列表项目

问题描述:

我想存储数组中同一类的几个列表的所有列表项。如何使用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'里面,你会发现它不能控制 –

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

不需要任何复杂的逻辑。

可以使用.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(); 

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]); 
} 

因为我的英语很差,所以我无法解释的代码,但我认为你可以把它理解

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>