我正在使用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
而有时我不能(取决于我的选择器当然是什么)
答案 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元素)。