用于循环遍历jquery对象的惰性语法

时间:2017-04-28 05:59:28

标签: javascript jquery

这些是我在循环时用来声明jquery对象的一些基本方法:

let $divs = $('.mydiv');

for (let i = 0; i < $divs.length; i++) {
    let $div = $($divs[i]);
}

// or

for (let $div of Array.from($divs)) {
    $div = $($div);
}

// or

Array.from($divs).forEach(function ($div) {
    $div = $($div);
});

我想保存行$div = $($div)(用于更快地编写代码),如下所示:

for (let $($div) of Array.from($divs)) {
    // ...
}

// or

Array.from($divs).forEach(function ($div = $($div)) {
    // ...
});

有没有办法实现我的目标?

更新

因为$('.mydiv')可以返回多于1个元素,所以我需要一个循环来处理它们。但是使用循环,它不会为每个元素返回一个jquery对象,我必须用$(...)

包装它

1 个答案:

答案 0 :(得分:2)

不是真正的问题的答案

在你有一组$ - 包裹的元素之后,你打算用它做什么?

$('.mydiv')                        // = $-wrapped html collection
  .map((_, e) => $(e))             // = array of $-wrapped elements
  .each((_, e) => console.log(e))  // = log each $-wrapped element
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="mydiv">1</div>
<div class="mydiv">2</div>
<div class="mydiv">3</div>

这与下面的这个剧本没有什么不同,那么重点是什么?

$('.mydiv')                          // = $-wrapped html collection
  .each((_, e) => console.log($(e))) // = log each $-wrapped element
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="mydiv">1</div>
<div class="mydiv">2</div>
<div class="mydiv">3</div>