如何使用jQuery

时间:2015-07-10 01:12:11

标签: javascript 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();
  }
});

删除列表项,但数组返回空。

由于

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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();

答案 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>