得到总共jquery的.each()

Mik*_*gin 31 javascript jquery

我正在使用jquery的.each()迭代一组li.我需要总共匹配所有的李.是唯一的方法在.each()之外创建一个count变量并在.each()内增加它?它似乎并不优雅.

var count;
$('#accordion li').each(function() {
    ++count;
});  
Run Code Online (Sandbox Code Playgroud)

Owe*_*wen 54

两种选择:

$('#accordion li').size(); // the jQuery way
$('#accordion li').length; // the Javascript way, which jQuery uses
Run Code Online (Sandbox Code Playgroud)

由于jQuery在引擎盖下调用长度,因此使用它而不是size()调用会更快.

  • jQuery文档实际上建议使用`length`,而不是`size()`:请参阅http://api.jquery.com/size/上的评论 (4认同)

use*_*716 7

好吧,我刚看到这个问题,你已经接受了答案,但我还是会留下一个.

问题的关键似乎是关于增加一个计数器.

事实是jQuery的.each()方法为你解决了这个问题.第一个参数.each() 递增计数器,因此您不需要自己进行.

$('#accordian li').each(function(index) {
       // index has the count of the current iteration
    console.log( index );
});
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,内置了一个优雅的解决方案.