20 / 20 / 7
Регистрация: 22.12.2012
Сообщений: 2,469
1

В чем отличие написания этих функций?

17.12.2020, 04:26. Показов 646. Ответов 10

Author24 — интернет-сервис помощи студентам
Здравствуйте! В чем отличие между:

Javascript
1
alert("There are " + $("li").length + "<li>");
и:

Javascript
1
2
var elems = $('li').get();
alert("There are " + elems.length + "<li>");
И почему строка:
Javascript
1
alert("There are " + elems.length + "<li>");
не работает без:
Javascript
1
var elems = $('li').get();
?

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2020, 04:26
Ответы с готовыми решениями:

Какое отличие в работе двух этих функций?
Никак не могу понять различие в работе функций type&amp; func() и type func(). Сделал себе...

В чём отличие в двух этих видах инициализаций к классу?
Добрый день есть три формы Form1, Form2 и Form3 из 1-ой формы можно вызвать 2-ю и 3-ю. Ну так вот,...

В чем отличие процедур и функций?
Здраствуйте.Еще один вопрос от новичка. В чем отличие процедур и функций? Где лучше применять их?...

В чём отличие процедур от функций
В чём отличие процедур от функций, просто в пару предложений....

10
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
17.12.2020, 06:25 2
Здравствуйте!
В первом случае вернет количество элементов коллекции jQuery.
Во втором случае вернет количество элементов настоящего массива Array.
Цитата Сообщение от morda77 Посмотреть сообщение
И почему строка:
Javascript
1
alert("There are " + elems.length + "<li>");
не работает без:
Javascript
1
var elems = $('li').get();
Потому что сначала нужно в переменную elems положить ссылку на настоящий массив, у которого каждый элемент массива является HTML-элементом.
Метод get() как раз из коллекции jQuery возвращает настоящий массив Array.
Without a parameter, .get() returns an array of all of the elements:
https://api.jquery.com/get/#get
0
20 / 20 / 7
Регистрация: 22.12.2012
Сообщений: 2,469
18.12.2020, 03:45  [ТС] 3
amr-now,
Спасибо. А что такое коллекция jQuery? И что подразумевается под массивом, если вернуть надо просто посчитанное количество li на странице?
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
18.12.2020, 06:15 4
Цитата Сообщение от morda77 Посмотреть сообщение
А что такое коллекция jQuery?
Наборы jQuery
Обратите внимание на переменную elems:
Javascript
1
var elems = $('.www');
В нее запишется группа выбранных элементов, так называемый набор элементов jQuery.

Вы можете одновременно менять все элементы набора jQuery (в отличие от querySelectorAll никаких циклов не требуется).

В принципе, переменная elems чаще всего и не нужна, так как jQuery позволяет применять полезные функции прямо к набору, в виде методов.

К примеру, вот так мы получим все элементы с классом .www и поставим им красный цвет:
Javascript
1
$('.www').css('color', 'red');
Почти все методы jQuery возвращают набор, к которому этот метод был применен, что позволяет выстраивать цепочки методов любой длины.

Давайте получим все элементы с классом .www, поставим им красный цвет, и сменим их текст на 'новый текст':
Javascript
1
$('.www').css('color', 'red').html('новый текст');
http://old.code.mu/books/javascript/jquery/

То есть после знака доллара внутри круглых скобок чаще всего будет строка CSS-селектора. Доллар и круглые скобки вернут коллекцию (список) HTML-элементов, которая похожа на document.querySelectorAll("div")

Но эта коллекция не то же самое, что и массив Array []
Цитата Сообщение от morda77 Посмотреть сообщение
И что подразумевается под массивом
https://learn.javascript.ru/array
Цитата Сообщение от morda77 Посмотреть сообщение
вернуть надо просто посчитанное количество li на странице
Чтобы получить свойство length у jQuery-коллекции, её не нужно преобразовывать в Array.
Свойство length у коллекции jQuery сразу есть.
$("li").length
0
20 / 20 / 7
Регистрация: 22.12.2012
Сообщений: 2,469
18.12.2020, 18:09  [ТС] 5
amr-now,
Спасибо. А переменная elems это какая-то встроенная в Jquery переменная или это просто совпадение, что переменную с этим именем используют авторы разных учебников?
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
18.12.2020, 18:32 6
morda77, elems - сокращение от "elements" (элементы, составные части коллекции)
В переменную записывается ссылка на объект с типом jQuery. Объект невидимо болтается в оперативной памяти компьютера и имеет числовой адрес.
Ссылка - числовой адрес, который кладётся в переменную.
0
20 / 20 / 7
Регистрация: 22.12.2012
Сообщений: 2,469
19.12.2020, 18:03  [ТС] 7
Спасибо. Я кажется начинаю понимать. В первом случае машина берет все li из библиотеки (коллекции) Jquery, а во втором со страницы? Если так, то как в первом случае машина понимает, сколько li на странице, если она обращается не к странице, а к библиотеке Jquery? В каком фрагменте кода происходит подсчет?
Или я неправильно понимаю?
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
19.12.2020, 18:21 8
morda77, коллекция jQuery состоит из ссылок на настоящие HTML-элементы.
В любом случае сами <li> находятся на странице. Они никуда не копируются.
Коллекция содержит адреса этих объектов <li> в оперативной памяти.


querySelectorAll тоже собирает коллекцию ссылок на <li>, которые на странице. Элементы из текста html при разборе DOM-дерева превращаются в объекты в оперативной памяти.
0
20 / 20 / 7
Регистрация: 22.12.2012
Сообщений: 2,469
19.12.2020, 19:12  [ТС] 9
amr-now, спасибо. А что тогда собой представляет коллекция Jquery? Коллекция это часть всей библиотеки или или библиотека=коллекция? Как эта коллекция выглядит и устроена, говоря человеческим языком, на примере ассоциаций с чем-то простым и осязаемым?
Просто мне пока не очень понятны обоснованность ее существования и взаимодействие с элементами страницы.
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
19.12.2020, 22:46 10
morda77, заново прочитайте ещё раз все сообщения в этой теме и по ссылкам тоже почитайте.
0
20 / 20 / 7
Регистрация: 22.12.2012
Сообщений: 2,469
20.12.2020, 04:41  [ТС] 11
amr-now, 6 раз упоминается "коллекция", но нигде не упоминается, что именно такое коллекция Jquery.
0
20.12.2020, 04:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2020, 04:41
Помогаю со студенческими работами здесь

В чем отличие функций IRQ-based i2c для bulk чтения/записи?
HAL_I2C_Slave_Sequential_Transmit_IT() и HAL_I2C_Mem_Write_IT() ? Как я понимаю,...

В чём отличие таблицы переходов триггера от таблицы функций возбуждения?
В чём отличие таблицы переходов триггера от таблицы функций возбуждения?

Требуется человек с опытом написания на этих языках, знающий все от и до
доброго времени! ищу онлайн учителя по PHP и JavaScript.Требуется человек с опытом написания на...

Отличие функций [объясните]
ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, ...

Отличие работы функций
В чем отличается работа функций pure, finally и return?

Отличие функций от процедур в tsql
Не могу разобраться


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru