将方法应用于数组中的单个元素 - jquery / javascript

时间:2012-01-14 21:45:06

标签: javascript jquery

我创建了一个名为$images的元素数组(hidden类中的所有元素。)然后,当我尝试将任何方法应用于数组中的一个元素,我收到$images[1].attr is not a function错误。但是,当我尝试$images.attr('id')而没有指定数组的索引时,它可以工作,但只给出了数组中第一个元素的结果。

$images = $(".hidden");
alert($images[1].attr('id'));

这里有什么,如何将方法应用于数组中的单个元素?顺便说一句,我确定数组中至少有两个元素,因为我为此测试了它。

4 个答案:

答案 0 :(得分:2)

如果您仍想拥有jQuery对象,而不是检索本机DOM元素对象,则需要使用eq函数。这会在数组中的某个位置获取一个元素并将其返回到jQuery对象中,因此您可以对其执行jQuery操作。

所以:

$images.eq(1).attr('id');

如果您只想要DOM元素,可以使用方括号表示法或get方法。然后,您可以直接查找DOM属性:

$images[1].id;  // is the same as
$images.get(1).id; 

答案 1 :(得分:1)

使用.eq,如下:

$images = $(".hidden");
alert($images.eq(1).attr('id'));

希望这有帮助!

答案 2 :(得分:1)

$images[1]不返回jQuery对象,它返回一个dom元素。

你想要$($images[1]).attr('id')

答案 3 :(得分:1)

jQuery修饰结果数组的额外方​​法不存在于元素本身中。要获取特定元素,您可以使用eq选择器或方法:

$images = $(".hidden");
alert($images.eq(1).attr('id'));

$image = $(".hidden:eq(1)");
alert($image.attr('id'));