Ошибка «<HTMLImageElement> не имеет метода» для объекта, который существует - PullRequest
2 голосов
/ 16 февраля 2012

Я использую 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 ]

5 голосов
/ 16 февраля 2012

.get() извлекает указанный элемент DOM из списка элементов.вызов вещи $('.votes ...') возвращает такой список элементов.Вы разыменовываете этот список с помощью [0], выбирая первый из найденных узлов.Это означает, что вы больше не работаете со списком DOMNode, вы работаете с DOMElement, и у DOMElement нет метода .get().

2 голосов
/ 16 февраля 2012

Числовой индексатор объекта jQuery (используя [0]) вернет элемент DOM, который находится в этой позиции в массиве результатов jQuery.

В вашем примере

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

То, что вы делаете, - используете индексатор для возврата элемента DOM, а затем пытаетесь использовать метод get для него.

Использование индексатора или get приведет к тому же самому, поскольку они оба возвращают элемент DOM в определенной точке в массиве результатов jQuery (единственное основное отличие - get() без аргументов, возвращающих только элементы DOM) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...