当我在jQuery对象中引用body标签时,使用.eq(0)过滤器是否有任何好处(性能或其他方面)?例如: $(“body”)。eq(0),而不仅仅是 $(“body”)。
答案 0 :(得分: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
是没有意义的。
答案 1 :(得分:0)
没有它没有任何区别,相反,对元素有一个额外的调用,jquery再次构造相同的元素。如果性能是任何考虑因素,这将是一个开销。