是$('.foo').eq(0)比$('.foo')快吗?

Dan*_*J F 0 javascript performance jquery

假设我有一个庞大的元素列表,其结构如下:

<div class="item">
    <div class="header"></div>
    <div class="body"></div>
    <div class="meta"></div>
    <div class="..."></div>
    ...
</div><!-- .item -->
Run Code Online (Sandbox Code Playgroud)

我已经找到了一个元素,现在我必须找到一个'.body'.哪些代码可以更快地运行:

$(el).find('.body')
Run Code Online (Sandbox Code Playgroud)

要么

$(el).find('.body').eq(0)
Run Code Online (Sandbox Code Playgroud)

换句话说,jQuery会在第一个找到的元素上停止,还是先循环遍历所有元素,然后它才会返回一个带有所选索引的元素?

Ali*_*guy 6

这个问题很荒谬."如果我添加另一个函数或者我将它排除在等式之外会更快吗?" 基本上你要问的是:

$(el).find('.body')大约快6-7倍:http://jsperf.com/to-eq-or-not-to-eq