jQuery Object数组表示法

时间:2012-12-08 04:49:51

标签: jquery-selectors jquery

我是jQuery的新手,我在理解对象的数组符号方面遇到了一些麻烦。阅读jQuery文档和this article,似乎可以通过执行类似

之类的操作来引用选择器返回的对象中的第n项
$('.foo')[n];

正确? 我应该能够串联使用jQuery操作/效果函数吗?有点像(这对我不起作用)

$('.foo')[0].hide();

我也试过,但无济于事:

var arr = $('.foo').get();
arr[0].hide();

我的语法有问题吗?做我想做的事情的最好方法是什么?

谢谢!

2 个答案:

答案 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();