&#34; <htmlimageelement>没有方法&#34;似乎存在的对象的错误</htmlimageelement>

时间:2012-02-16 02:57:28

标签: javascript jquery dom

我正在使用Chrome和内置开发人员工具。我在控制台中执行以下操作

$('.votes > a > img')[0]

我明白了

<img src="/myimage_png">

但如果我这样做

$('.votes > a > img')[0].get(0).tagName

我得到了

TypeError: Object #<HTMLImageElement> has no method 'get'

我不明白为什么有时候我能做.get(0).tagName而有时我不能(取决于我的选择器当然是什么)

2 个答案:

答案 0 :(得分:5)

.get()从元素列表中检索指定的DOM元素。 $('.votes ...') stuff调用返回这样一个元素列表。您使用[0]取消引用此列表,获取找到的第一个节点。这意味着您不再使用DOMNode列表,而是使用DOMElement,而DOMElement没有.get()方法。

答案 1 :(得分:2)

jQuery对象的数字索引器(使用[0])将返回位于jQuery结果数组中该位置的DOM元素。

在你的

示例中
$('.votes > a > img')[0].get(0).tagName

您正在做的是使用索引器取回DOM元素,然后尝试对其使用get方法。

使用索引器或get将导致相同的事情,因为它们都返回jQuery结果数组中特定点的DOM元素(唯一的主要区别是get(),没有参数只返回DOM元素)。