如何使用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();
}
});
项目被删除列表,但数组返回空。
谢谢
答
var array = [];
$('.myList li').each(function(i, li) {
array.push($(li));
});
答
不需要任何复杂的逻辑。
可以使用.get()
method来检索jQuery对象匹配的元素的数组:
var arr_list_items = $('.myList li').remove().get();
console.log(arr_list_items);
// [li, li, li, li, li]
或者,您也可以使用.map()
method:
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>
您可以添加代码'console.info (1111)';在你'while'里面,你会发现它不能控制 –