Что делает $ ([]), означают в jQuery

Я столкнулся со следующим кодом jQuery, но не мог понять это. Что следующее кодирует, особенно "$ ([])" часть в последней средней строке?

var instrument = $("#instrument"),
    quantity = $("#quantity"),
    orderType = $("#orderType"),
    price = $("#price"),
    validityDate = $("#validityDate"),
    allFields = $([]).add(instrument).add(quantity).add(orderType).add(price).add(validityDate)
5
задан MD Sayem Ahmed 13 April 2010 в 12:54
поделиться

3 ответа

Похоже, он определяет массив, а затем add () добавляет к нему элементы DOM. Из руководства:

Учитывая объект jQuery, который представляет набор элементов DOM, метод .add () создает новый объект jQuery из объединения этих элементы и переданные в метод. Аргумент для .add () может быть почти чем угодно, что принимает $ (), включая выражение селектора jQuery, ссылки на элементы DOM или фрагмент HTML.

[] - пустой массив javascript. Как отмечает frunsi , это неправильное использование, и определение [] не требуется для создания пустого набора элементов, в 1.4 $ () сделает это за вас.

10
ответ дан 18 December 2019 в 08:27
поделиться

Это создаст пустой объект jQuery, то есть с коллекцией из 0 узлов DOM, на которые есть ссылки.

Чаще всего функция jQuery $ применяется либо к селектору CSS, либо к одному или нескольким узлам из DOM. В этом конкретном случае последняя из этих трех «перегрузок» используется для создания пустого объекта jQuery из пустого массива, к которому затем добавляются новые узлы DOM с помощью add () .

Ваш конкретный пример кода, тем не менее, немного многословен, так как то же самое можно было бы достичь следующим образом:

var allFields = $("#instrument, #quantity, #orderType, #price, #validityDate");
2
ответ дан 18 December 2019 в 08:27
поделиться

Создает пустой набор jQuery. Такое использование неверно, хотя может сработать. [] излишни.

Правильным будет просто $ () .

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

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

http://api.jquery.com/jQuery/

7
ответ дан 18 December 2019 в 08:27
поделиться
Другие вопросы по тегам:

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