更简单的方法来限制.each()循环中的条目

Naf*_*Kay 8 javascript jquery

我一直想知道是否有一个很好的jQuery方式来执行以下操作:

var count = 0;    

$("p").each(function() {
    if (count >= 5)
        return false;

    $(this).toggleClass("highlight");
    count++;
});
Run Code Online (Sandbox Code Playgroud)

是否有与each()jQuery 类似的功能,允许我设置一个限制它将循环的项目数量,或者这是最好的做事方式?

pim*_*vdb 14

最简单的事情是.slice:

$("p").slice(0, 5).toggleClass("highlight");
// only <p>s from index 0 (inclusive) to 5 (exclusive)
Run Code Online (Sandbox Code Playgroud)


Boj*_*les 5

看一下slice()。这将分割返回的数组以$("p")用于.each()

$("p").slice(0, 4).each(function() {
    // Do stuff
});
Run Code Online (Sandbox Code Playgroud)

.slice()采用开始和结束索引作为参数。在上面的示例中,我们从第一个数组元素(索引 0)开始,返回接下来的 5 个元素,直到索引 4。


Thi*_*ter 5

您可以简单地限制所选元素: $("p:lt(5)").toggleClass("highlight");