найти предыдущий элемент узла - PullRequest
0 голосов
/ 16 февраля 2012

После получения такого элемента

$('.votes > a > img').get(0)

Я не могу вызвать closest('img') для него.Например,

$('.votes > a > img').get(0).closest('img')

Я получаю сообщение об ошибке, в котором говорится, что нет метода под названием «ближайший».

Но сработает следующее

$('.votes > a > img').closest('img')  // removed .get(0)

Может кто-нибудь объяснить, почему это так?

Я действительно не понимаю, особенно когда я сопоставляю это с это в jsfiddle В версии jsfiddle есть вызов ('li.item-a').closest('ul').css('background-color', 'red');​, который мне кажется таким же, как мой $('.votes > a > img').get(0).closest('img')

1 Ответ

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

Заменить get на eq, см. Обновленный jsfiddle:

По сути, eq возвращает объект jQuery, который вы можете использовать повторно, но get предоставляет вам элемент DOM, который не является jQuery и не позволит вам вызывать closest или другие методы jQuery для него. См. Этот SOq, где у вас есть больше ответов относительно разницы get против eq:

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