Что на самом деле возвращает jquery $? - PullRequest
111 голосов
/ 20 августа 2009

Я прочитал документацию JQuery, и хотя большое внимание уделяется тому, что вы должны передать функции, я не вижу никакой информации о том, что она на самом деле возвращает .

В частности, всегда ли он возвращает массив, даже если найден только один элемент? Возвращает ли NULL, когда ничего не найдено? Где это задокументировано?

Я понимаю, что методы jquery могут быть применены к возвращаемому значению, но что, если я хочу просто использовать возвращаемое значение напрямую?

Ответы [ 9 ]

72 голосов
/ 20 августа 2009

С Описание Рика Строля :

Объект jQuery: упакованный набор: Селекторы возвращают известный объект jQuery как «завернутый набор», который является массивоподобная структура, которая содержит все выбранные элементы DOM. Вы можете перебрать завернутый набор как массив или доступ к отдельным элементам через индексатор ($ (sel) [0] для пример). Что еще более важно, вы можете также применять функции JQuery против все выбранные элементы.

О возврате ничего:

Всегда ли он возвращает массив? Это возвращает нуль?

Вы всегда получаете обратно одно и то же, независимо от того, имеет ли оно какое-либо содержание, вопрос. Обычно это можно проверить с помощью .val () (например, $ ('. MyElem'). Val ())

24 голосов
/ 20 августа 2009

Он не возвращает массив, он возвращает объект jQuery. Объект jQuery содержит все специальные методы jQuery.

Он никогда не возвращает ноль или другой тип. Если найден один элемент, у объекта jQuery будет только один дочерний элемент. Если элементы не найдены, объект jQuery будет пустым.

5 голосов
/ 20 августа 2009

Как уже упоминал другой ответчик, он всегда возвращает объект jQuery.

Этот объект всегда содержит массив элементов (даже если это пустой массив или массив только с одним объектом).

Если вы хотите использовать возвращаемый объект «напрямую», например, в качестве простого элемента, вы можете выполнить одно из следующих действий:

$('selector')[0] // element
$('selector').get(0) // element
$('selector').length // number of elements in the array
5 голосов
/ 20 августа 2009

Функция jQuery (т.е. "$") всегда возвращает объект jQuery в каждом экземпляре.

3 голосов
/ 14 декабря 2012

Из документации jQuery :

Сам объект jQuery ведет себя подобно массиву; он имеет свойство длины, и элементы в объекте могут быть доступны по их числовым индексам [0] - [длина-1]. Обратите внимание, что объект jQuery на самом деле не является объектом Javascript Array, поэтому он не имеет всех методов настоящего объекта Array, таких как join ().

2 голосов
/ 20 августа 2009

Тот факт, что $ () всегда возвращает функцию jQuery, позволяет разумно связывать вызовы функций jQuery.

0 голосов
/ 20 июня 2014

Механизм селектора запросов

$ (".."), селектор jquery, используется для выбора соответствующих элементов.

Возвращаемое значение

Он всегда возвращает похожий на массив объект jquery, у которого есть свойство length,

вызов метода для возвращенного объекта jquery

Методы jquery могут вызываться для объекта и применяться к этим выбранным элементам,

Доступ к исходному элементу по индексу

Выбранные элементы сохраняются как свойства объекта, имя их свойств - номера индексов, начинающиеся с 0,
таким образом можно получить доступ по индексу, начиная с 0,
после получения исходного элемента вы можете обращаться с ним так, как если бы он был получен методом «document.getElementXxx ()».

Обернуть оригинальный элемент в объект jquery

После получения исходного элемента вы можете обернуть его в объект jquery,
позвонив $ (originalEle),
тогда вы можете вызывать методы jquery для обернутого объекта,

0 голосов
/ 20 августа 2009

В их документации перечислены несколько основных вызовов, которые можно использовать с "$", и что они возвращают

0 голосов
/ 20 августа 2009

Согласно firebug, он возвращает массив объектов, соответствующих вашему селектору. Но этот массив представляет собой объект jQuery, который содержит больше методов, чем простой массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...