javascript - jQuery .eq(index) 与 [index] 如果两者都返回一个对象?

标签 javascript jquery

我无法区分为什么一种方法有效而另一种方法无效。我通过使用 .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'} );
});

控制台日志告诉我两个选择器都返回一个对象。那么为什么我会在 [] 符号上得到一个类型错误,就像它不是一个对象一样?

感谢任何澄清。

谢谢

最佳答案

数组语法返回一个对象,但如果您想访问其上的 JQuery 函数,则需要对其调用 $(object),其中 .eq()返回一个 JQuery 对象。例如:

console.log('By eq:', $('button').eq(0).text())
console.log('By Array as a JQuery Object', $( $('button')[0]).text())
try {
  console.log('By Array:', $('button')[0].text())
} catch(e) {
  console.log('You get an exception because the element doens\'t have a  property named text');
  console.log(e);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>A button</button>

关于javascript - jQuery .eq(index) 与 [index] 如果两者都返回一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47341385/

相关文章:

Javascript - 计算错误

javascript - angular2 和 materializecss 集成

javascript - 选择 2 : tagging using an array from remote data?

用于捕获动态生成的非子元素的 JavaScript 事件

javascript - 单击时动画 Div 背景颜色的问题

javascript - 谁能解释为什么这个 IIFE 传入的参数会改变作用域内的变量,使其变为未定义的?

javascript - 检查div的所有 child 是否都上课

javascript - JQuery Attr 可见,不适用于 IE7 或更低版本

javascript - jQuery 倒计时如果没有剩余时间则隐藏小时

javascript - 压缩 HTML - 元素?