访问数组时,何时使用.eq()函数是否合适?
例如,我有......
slides.eq(slidesLength-1).css("z-index", (slidesLength-1));
后来我......
for(i=0; i在第一段代码中,如果我不使用.eq()函数,幻灯片放映将停止运行.但是,无论我是否使用.eq()函数,第二部分似乎都起作用.为什么是这样?
1> Rocket Hazma..:
slides
是不是一个数组.这是一个jQuery对象.该.eq()
方法将指定索引处的元素作为jQuery对象返回.虽然jQuery对象可能不是数组,但它们可以假装具有
length
属性以及与索引对应的属性.(因为他们不是数组,你不能说类似方法.pop()
,.forEach()
等他们.)当你这样做时
slides[i]
,你实际上是获取DOM元素,而不是jQuery对象.该$()
函数将DOM元素转换为jQuery对象.所以,当你这样做时
slides.eq(1)
,内部jQuery正在做$(slides[i])
.假装是数组的PS对象,如jQuery对象,被称为"类数组对象".如果你
console.log(slides)
,它可能看起来像一个数组.这只是您的控制台,试图让您方便.(有关更多信息,请参阅此问题:在JavaScript中创建类似数组的对象)
2> T J..:
.eq()
是一个返回jQuery对象的jQuery方法,而通过index访问则返回plain DOM元素.eq()
当你想css()
在返回的选择上使用jQuery方法(在本例中)时,你应该使用它.原因之所以
$(slides[i])
有效是因为您通过将plain元素传递给$()
构造函数来构造jQuery对象.