$ .each的jQuery替代品

And*_*rri 8 each jquery

我发现$ .each非常慢,如果包含许多各种jQuery效果,会给网页带来问题.

我想知道是否有一个很好的替代$ .each,例如:

$('ul li').each(function() {
   var singleLi = $(this);
});
Run Code Online (Sandbox Code Playgroud)

没有悬停,我怎么能不使用每个?

谢谢.

Poi*_*nty 23

如果你想要一个"$ .each()" 的实际替代品,只需使用"for"循环:

var liElements = $('ul li');
for (var i = 0; i < liElements.length; ++i) {
  var li = liElements[i];
  // ... lots of various jQuery effects ...
}
Run Code Online (Sandbox Code Playgroud)

您可以跳过".each()"并直接使用".hover()"的建议是正确的,但是他们忽略了这一点:那些jQuery例程无论如何都将在内部执行".each()".

我怀疑从"$ .each()"切换到"for"循环本身就会产生很大的不同.

  • 这应该是公认的答案.你可以在这里找到比较$ .each与其他循环方法的性能的基准:http://jsperf.com/jquery-each-vs-for-loop/4 (4认同)

Nav*_*mad 6

没有完全相同的方式 each

$('#list li').hover(function() {
        $('#myDiv').stop().fadeIn(400);
    }, function() {
        $('#myDiv').stop().fadeOut(400);
    })
});
Run Code Online (Sandbox Code Playgroud)

  • 虽然,你可能想要使用`.stop(true,true)`,否则,它们会停止并且永远不会完成动画并且你会陷入半褪色div. (2认同)