我想在数组中存储同一个类的多个列表的所有列表项。
例如:
<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 :(得分:4)
var array = [];
$('.myList li').each(function(i, li) {
array.push($(li));
});
答案 1 :(得分:2)
不需要任何复杂的逻辑。
您可以使用.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();
答案 2 :(得分: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]);
}
因为我的英语很差,所以我无法解释代码,但我认为你可以理解它
答案 3 :(得分: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>