当我在 jQuery 对象中引用 body 标签时,使用 .eq(0) 过滤器有什么好处(性能或其他方面)吗?例如:$("body").eq(0)而不是$("body")。
问问题
166 次
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 回答