Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果两者都返回一个对象,那么jQuery.eq(index)与[index]是什么关系?_Javascript_Jquery - Fatal编程技术网

Javascript 如果两者都返回一个对象,那么jQuery.eq(index)与[index]是什么关系?

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]));

我很难区分为什么一种方法有效而另一种方法无效。通过使用.eq()我有一个可行的解决方案,但是我想正确地理解为什么我不能使用[]符号调用.css方法,如果它仍然返回一个对象

这是我的测试代码,我自己也尝试过:

$('.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对象,但现在我明白了。感谢你的时间和努力