我是jQuery的新手,我在理解对象的数组符号方面遇到了一些麻烦。阅读jQuery文档和this article,似乎可以通过执行类似
之类的操作来引用选择器返回的对象中的第n项$('.foo')[n];
正确? 我应该能够串联使用jQuery操作/效果函数吗?有点像(这对我不起作用)
$('.foo')[0].hide();
我也试过,但无济于事:
var arr = $('.foo').get();
arr[0].hide();
我的语法有问题吗?做我想做的事情的最好方法是什么?
谢谢!
答案 0 :(得分:18)
[0]
数组表示法和.get()
method都返回对jQuery对象中DOM元素的引用,并且您不能在DOM元素上使用jQuery方法。
请尝试使用eq()
method,因为它会返回一个新的jQuery对象:
$('.foo').eq(0).hide();
另请注意,使用数组表示法或.get()
来获取对DOM元素的引用意味着您可以然后直接访问DOM元素的属性,例如:
var firstElId = $('.foo')[0].id;
...如果没有与$('.foo')[0]
选择器匹配的元素,那么undefined
将$('.foo')[0].id
和'.foo'
将会出现错误。
答案 1 :(得分:6)
当您将jQuery对象作为数组引用时,您将获得一个DOM元素。您需要将其转换回jQuery对象以使用类似.hide()
的方法var bar = $('.foo')[n];
var $bar = $(bar);
$bar.hide();
或者只使用jQuery的eq()方法:
var bar = $('.foo').eq(n);
bar.hide();