9

我是 jQuery 新手,在理解它的对象数组表示法时遇到了一些麻烦。阅读 jQuery 文档和这篇文章,您似乎可以通过执行类似的操作来引用选择器返回的对象中的第 n 个项目

$('.foo')[n];

正确的?我应该能够串联使用 jQuery 操作/效果函数吗?类似的东西(这对我不起作用)

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

我也试过了,没用:

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

我的语法有问题吗?做我在这里想做的最好的方法是什么?

谢谢!

4

2 回答 2

18

[0]数组表示法和.get()方法都返回对 jQuery 对象中的 DOM 元素的引用,并且您不能对 DOM 元素使用 jQuery 方法。

试试这个eq()方法,因为它返回一个新的 jQuery 对象:

$('.foo').eq(0).hide();

另请注意,使用数组表示法或.get()获取对 DOM 元素的引用意味着您可以直接访问 DOM 元素的属性,例如:

var firstElId = $('.foo')[0].id;

...如果没有与选择器匹配的元素,第二个注释$('.foo')[0]将会出错。undefined$('.foo')[0].id'.foo'

于 2012-12-08T04:53:20.750 回答
6

当您将 jQuery 对象作为数组引用时,您会得到一个 DOM 元素。您需要将其转换回 jQuery 对象才能使用 .hide() 等方法

var bar = $('.foo')[n];
var $bar = $(bar);

$bar.hide();

或者只是使用 jQuery 的 eq() 方法:

var bar = $('.foo').eq(n);
bar.hide();
于 2012-12-08T04:54:55.273 回答