Javascript 如果两者都返回一个对象,那么jQuery.eq(index)与[index]是什么关系?
我很难区分为什么一种方法有效而另一种方法无效。通过使用.eq()我有一个可行的解决方案,但是我想正确地理解为什么我不能使用[]符号调用.css方法,如果它仍然返回一个对象 这是我的测试代码,我自己也尝试过:Javascript 如果两者都返回一个对象,那么jQuery.eq(index)与[index]是什么关系?,javascript,jquery,Javascript,Jquery,我很难区分为什么一种方法有效而另一种方法无效。通过使用.eq()我有一个可行的解决方案,但是我想正确地理解为什么我不能使用[]符号调用.css方法,如果它仍然返回一个对象 这是我的测试代码,我自己也尝试过: $('.slider').each(function() { var $slides = $('.slide'); console.log(jQuery.type($slides.eq(1))); console.log(jQuery.type($slides[2]));
$('.slider').each(function() {
var $slides = $('.slide');
console.log(jQuery.type($slides.eq(1)));
console.log(jQuery.type($slides[2]));
$slides.eq(1).css( {color: 'red'} );
$slides[2].css( {color: 'red'} );
});
控制台日志告诉我两个选择器都返回一个对象。那么为什么我会在[]符号上得到一个typeError,好像它不是一个对象
请澄清
谢谢,数组语法返回一个对象,但是如果你想访问它上面的JQuery函数,你需要调用它上面的
$(object)
,其中.eq()
返回一个JQuery对象。例如:
console.log('By eq:',$('button').eq(0.text())
log('按数组作为JQuery对象',$($('button')[0]).text())
试一试{
console.log('按数组:',$('button')[0].text())
}捕获(e){
log('您得到一个异常,因为元素没有名为text的属性');
控制台日志(e);
}
按钮
数组语法返回一个对象,但如果要访问该对象上的JQuery函数,则需要在其上调用$(object)
,其中.eq()
返回一个JQuery对象。例如:
console.log('By eq:',$('button').eq(0.text())
log('按数组作为JQuery对象',$($('button')[0]).text())
试一试{
console.log('按数组:',$('button')[0].text())
}捕获(e){
log('您得到一个异常,因为元素没有名为text的属性');
控制台日志(e);
}
按钮
还注意到“object”是最通用的内部javascript类,即使是原始HTML元素上的jQuery.type
也会返回“object”
。事实上,由于$slides[2]
是一个原始的HTML元素,这正是发生的事情的完美意义。我没有考虑你的任何一点。在我看来,由于$slides是一个jQuery对象,所以尽管使用了[],它仍然是一个jQuery对象,但现在我明白了。感谢您花费的时间和精力还请注意,“object”是最通用的内部javascript类,即使是原始HTML元素上的jQuery.type
也会返回“object”
。事实上,由于$slides[2]
是一个原始的HTML元素,这正是发生的事情的完美意义。我没有考虑你的任何一点。在我看来,由于$slides是一个jQuery对象,所以尽管使用了[],它仍然是一个jQuery对象,但现在我明白了。感谢你的时间和努力