Просмотр полной версии : $('li').get(0) не является объектом?
Конструкция
$('ul li').get(0)
или
$('ul li')[0]
должна возвращать объект, содержащий первый элемент <li> в списке <ul>, так ведь?
Тащем-то, typeof говорит, что $('ul li').get(0) - это как раз таки объект. Тогда почему я не могу применить какой-нибудь метод к $('ul li').get(0)?
Например, след. конструкция выдает ошибку
$('ul li').get(0).hide(1000);
Вопрос: почему ошибка, ведь $('ul li').get(0) возвращает объект jQuery? Почему тогда к нему нельзя применить метод hide()?
zlodeeev
25.07.2012, 13:53
Его надо тогда тоже заключать в скобки $() наверно, попробуй.
vadim5june
25.07.2012, 14:00
Вопрос: почему ошибка, ведь $('ul li').get(0) возвращает объект jQuery? Почему тогда к нему нельзя применить метод hide()?
нет DOM объект
попробуй так
$($('ul li').get(0)).hide(1000);
Да, так действительно заработало.
Но я читал, что почти каждый метод jquery возвращает DOM объект в контексте кторого он (этот метод) был вызван и благодаря этому можно писать цепочки из методов типа такого:
$(selector).hide().show().fadeTo().css() итд. Каждый метод будет вызываться в контексте $(selector).
Но получается, что метод .get() не возвращает DOM объект и по этому нужно снова создать DOM объект, вот так вот:
$($('ul li').get(0))
что бы к нему можно было применить метод hide() или какой нибудь другой метод обьекта джейквери.
Я правильное умозаключение сделал? :)
vadim5june
25.07.2012, 14:55
да
$('ul li').eq(0).hide();
.get() - Возвращает DOM объект.
.eq() - Возвращает Jquery объект
vadim5june
25.07.2012, 17:02
$('ul li').eq(0).hide();
.get() - Возвращает DOM объект.
.eq() - Возвращает Jquery объект
Я уж жквери давно не пользуюсь-забыл про этот метод
Я уж жквери давно не пользуюсь-забыл про этот метод
И поэтому лучше задать вопрос на форуме, потратив время нескольких человек, чем пойти и посмотреть в документации?
vBulletin® v3.6.7, Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot