1

当我在 jQuery 对象中引用 body 标签时,使用 .eq(0) 过滤器有什么好处(性能或其他方面)吗?例如:$("body").eq(0)而不是$("body")

4

2 回答 2

3

$("body")应该做得很好..eq(0)只是选择第一个元素,如果它只有一个元素开始,它不会有任何区别。

$('body')将具有相同的结构,$('body').eq(0).eq只是一个额外的调用。

.eq功能实现

function (i) {
    i = +i;
    return i === -1 ? this.slice(i) : this.slice(i, i + 1);
}

eq如您所见,当您只有一个元素时,执行 a 是没有意义的。

于 2012-09-19T15:14:52.037 回答
0

不,它没有任何区别,相反,元素上有一个额外的调用,jquery 再次构造了相同的元素。如果考虑性能,这将是一个开销。

于 2012-09-19T15:19:47.310 回答