Что означает $ ([]) в jQuery?

var username = $("#username"),
                password = $("#password"),
                allFields = $([]).add(username).add(password);

Что такое allFields? Что такое $ ([])?

Будучи новичком в Javascript / jQuery, я никогда раньше не видел эту запись в $ ([]), и меня интересуют связанные с ней методы.

Учитывая, что его "$ ([])", его сложно найти. А поиск в Google массивов в Javascript (предполагающий, что это массив какого-то рода) выдает типичные массивы, которые я уже видел.

Так, что такое $ ([])? Кто-нибудь может указать мне какую-то документацию? Мне интересно узнать, как использовать эту странную вещь.

14
задан Daniel Vandersluis 27 August 2010 в 19:20
поделиться

4 ответа

Функция jQuery принимает массив узлов DOM.

$([document.body]) например, который вернет объект jQuery, упаковав все элементы DOM, переданные в этот массив. Однако, поскольку в вашем примере нет объекта DOM для начала, и это просто пустой массив, нет необходимости даже передавать пустой массив.

Вызов функции jQuery без каких-либо аргументов возвращает пустой набор. Взято из документации по jQuery,

Возврат пустого набора

Начиная с jQuery 1.4, вызов метода jQuery() без аргументов возвращает пустой набор jQuery. В предыдущих версиях jQuery возвращался набор, содержащий узел документа.

Итак, ваш пример будет работать так же, если вместо этого вы вызовете

$().add(username).add(password);

Как упоминалось в других ответах и ​​документах, передача пустого массива требовалась до версии 1.4.

12
ответ дан 1 December 2019 в 10:17
поделиться

Я полагаю, что он создает пустой объект коллекции jQuery.

3
ответ дан 1 December 2019 в 10:17
поделиться

[] это пустой массив. Обертывание с помощью $() перегружает его функциями jQuery.

В javascript вы можете создать массив следующим образом:

var foo = [];
6
ответ дан 1 December 2019 в 10:17
поделиться

Это пустой массив передается при создании объекта jQuery. Предположительно, чтобы инициализировать что-то.

В этом нет необходимости, по крайней мере, в последних версиях jQuery.

Вот пример без массива: http://jsfiddle.net/MAzLN/

Работает нормально, так как alert() показывает один элемент в объекте.

jQuery инициализирует свойство length значением 0 при создании объекта, поэтому я не уверен, какова цель, если только это не требовалось в прошлом.

5
ответ дан 1 December 2019 в 10:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: