Я новичок в jQuery, и мне интересно, в чем разница между jQuery get()
и eq()
функциями. Я могу неправильно понять, что get()
делает функция, но мне показалось странным, что я не могу вызвать функцию для возвращаемого элемента в той же строке.
//Doesn't work
I.e. $("h2").get(0).fadeIn("slow");
//Works
$("h2").eq(0).fadeIn("slow");
jquery
jquery-selectors
контакты
источник
источник
Ответы:
.get()
и.eq()
оба возвращают один «элемент» из массива объектов jQuery, но они возвращают один элемент в разных формах..eq()
возвращает его как объект jQuery, что означает, что элемент DOM заключен в оболочку jQuery, что означает, что он принимает функции jQuery..get()
возвращает массив необработанных элементов DOM. Вы можете управлять каждым из них, обращаясь к его атрибутам и вызывая его функции, как если бы вы использовали необработанный элемент DOM. Но он теряет свою идентичность как объект, завернутый в jQuery, поэтому функция jQuery вроде.fadeIn
не будет работать.источник
get()
возвращает элемент DOM, тогда как:eq()
иeq()
возвращает элемент jQuery. Поскольку элементы DOM не имеют метода,fadeIn()
он не работает .http://api.jquery.com/get/
http://api.jquery.com/eq-selector/
источник
get(0)
(docs) возвращает первый элемент DOM в наборе.eq(0)
(docs) возвращает первый элемент DOM в наборе, заключенный в объект jQuery.Вот почему
.fadeIn("slow");
не работает, когда вы делаете.get(0)
. У элемента DOM нетfadeIn()
метода, но у объекта jQuery есть.источник
Чтобы опираться на другие ответы:
источник
eq(i)
извлекает i-й член в наборе получателя какjQuery
объект, аget(i)
возвращает член в i-й позиции как элемент DOM.Причина, по которой это не работает:
Это потому, что
h2
элемент DOM не имеет метода с именемfadeIn
.eq(0)
Вместо этого вы должны использовать здесь.источник
Я привожу пример, объясняющий пункты, высказанные здесь другими. рассмотрим следующий код
и соответствующий код js,
Вот что вы увидите
Первый - это объект DOM, а второй - объект, завернутый в Jquery, где вы можете вызывать методы Jquery.
источник
Метод jQuery eq () выбирает элемент HTML с определенным порядковым номером.
Вот пример того
Источник: http://www.snoopcode.com/JQuery/jquery-eq-selector
источник
eq(2)
возвращает третий div?Ответы выше объяснены конкретно и правильно. Я хочу добавить сюда несколько моментов, которые могут помочь при использовании
get()
.Если вы не передадите аргумент
.get()
, он вернет массив элементов DOM.Если у вас есть объект DOM с использованием
get()
, например,var s = $("#id").get(0)
вы можете превратить его обратно в объект jQuery, просто используя это,$(s)
Вы можете использовать
$obj[i]
как альтернативный способ, если не хотите использовать$obj.get(i)
, см. Ниже,источник