2014-10-27 3 views
1

Я изучаю jquery и играю с навигацией по дереву.ТипError: undefined не является функцией - .parent()

$('.quick-info') returns a list 
$('.quick-info')[0] grabs the first element in that list 

Когда я пытаюсь найти родителя первого элемента в этом списке

$('.quick-info')[0].parent() 

Я получаю ошибку:

TypeError: undefined is not a function 

Что я делаю неправильно?

+1

'$ ('быстрой информации.') [0]' возвращает HTMLnode, который не имеет функцию '.parent'. Используйте '$ ('. Quick-info'). Get (0) .parent()' http://api.jquery.com/get/ – Cheery

ответ

3

Если вы хотите вызвать parent() метод JQuery на первый элемент возвращаемого набора, вам нужно повторно завернуть его в селекторе JQuery:

$($('.quick-info')[0]).parent(); 

... или вы можете использовать jQuery's first() method чтобы получить первый соответствующий элемент:

$('.quick-info').first().parent(); 

... или, как Радостный имеет commented, вы можете использовать jQuery's get() method вместо [0]:

$('.quick-info').get(0).parent(); 

В противном случае вы пытаетесь вызвать метод jQuery parent() на HTML-узле (для которого эта функция не существует).

1

Ваш код не работает, потому что $('.quick-info')[0] является родным объектом DOM, который не имеет функции .parent() (которая является частью jQuery).

Я думаю, что то, что вы ищете .first():

$('.quick-info').first().parent() 
+0

в python Я могу сделать тип печати (obj) для проверки того, какой объект это. Есть ли способ сделать это в javascript/jquery? –

+0

@MorganAllen Нет, не совсем. Все, что вы можете сделать, это посмотреть на методы и/или прототип и попытаться понять это из контекста. – freakish

Смежные вопросы