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

applying methods to single elements in an array - jquery/javascript

本文关键字:元素 -jquery javascript 单个 方法 应用于 数组      更新时间:2023-09-26

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

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

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

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

因此:

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

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

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

使用.eq,就像这样:

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

希望这能有所帮助!

$images[1]不返回jQuery对象,而是返回dom元素。

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

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

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

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