我创建了一个名为$images
的元素数组(hidden
类中的所有元素。)然后,当我尝试将任何方法应用于数组中的一个元素,我收到$images[1].attr is not a function
错误。但是,当我尝试$images.attr('id')
而没有指定数组的索引时,它可以工作,但只给出了数组中第一个元素的结果。
$images = $(".hidden");
alert($images[1].attr('id'));
这里有什么,如何将方法应用于数组中的单个元素?顺便说一句,我确定数组中至少有两个元素,因为我为此测试了它。
答案 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'));