Что означает $([]) в jQuery?
var username = $("#username"),
password = $("#password"),
allFields = $([]).add(username).add(password);
Что такое allFields? Что такое $([])?
Будучи новичком в Javascript/jQuery, я никогда раньше не видел эту нотацию $([]), и меня интересуют связанные с ней методы.
Учитывая, что его "$ ([])", это сложно найти. И поиск в Google массивов в Javascript (угадать, что вещь - это какой-то массив) дает типичные массивы, которые мне знакомы.
Итак, что такое $([])? Может ли кто-нибудь указать мне на документацию? Мне интересно узнать, как использовать эту странную вещь.
Ответы
Ответ 1
Функция jQuery принимает массив узлов DOM.
$([document.body])
например, который вернет объект jQuery, обернув все элементы DOM, переданные в этом массиве. Однако, поскольку в вашем примере нет объекта DOM для начала, и это просто пустой массив, нет необходимости даже передавать пустой массив.
Вызов функции jQuery без аргументов возвращает пустой набор. Взятые из документов jQuery,
Возврат пустого набора
Как и в jQuery 1.4, вызов метода jQuery() без аргументов возвращает пустой набор jQuery. В предыдущих версиях jQuery это возвращало бы набор, содержащий документ node.
Итак, ваш пример будет работать так же, если вместо него вызывается
$().add(username).add(password);
Как уже упоминались другие ответы, и, как говорят документы, необходимо передать пустой массив до версии 1.4.
Ответ 2
[] это пустой массив. Обертка с помощью $() перезаряжает его с помощью функций jQuery.
В javascript вы можете создать массив таким образом:
var foo = [];
Ответ 3
Это пустой массив, который передается при создании объекта jQuery. Предположительно, чтобы что-то инициализировать.
Не обязательно, по крайней мере, не в последних версиях jQuery.
Вот пример без массива: http://jsfiddle.net/MAzLN/
Прекрасно работает, поскольку alert()
показывает один элемент в объекте.
jQuery инициализирует свойство length
значением 0
при создании объекта, поэтому я не уверен, что это за цель, если только это не требуется в прошлом.
Ответ 4
Я считаю, что он создает пустой объект коллекции jQuery.