$('[name='+name+']')
В.С.
$.find('[name='+name+']')
# 1 результаты массива объектов jquery. , # 2 возвращает массив элементов
Как jquery определяет, когда возвращать объект vs jquery object.
Из вашего комментария ниже вы смешиваете две несвязанные функции. (Это легко сделать.)
Существует документированный метод экземпляров jQuery под названием find
, который возвращает экземпляр jQuery. Вы вызываете его по экземплярам, а не по функции jQuery
. Например:
var instance = $("some selector here");
instance.find("some other selector here").doSomething();
Существует встроенный недокументированный метод функции jQuery
называемый find
. Если бы вы использовали его, вы бы сделали так:
// Undocumented
var x = $.find("...");
Эта функция полностью не связана с документированным выше, и поскольку она не документирована, вы не должны ее использовать.
Это похоже на путаницу, которую люди имеют с jQuery#each
(документальная функция API, которую вы вызываете в экземплярах jQuery для повторения их содержимого) и $.each
(документальная функция API, вызываемая функцией jQuery
для циклического прохождения через произвольный массив и объектные структуры).
Как jquery определяет, когда возвращать объект vs jquery object.
Почти все публичные вызовы API возвращают объекты jQuery. Внутренние методы делают все, что нужно для выполнения jQuery для внутреннего метода. :-)
$.find
. Метод, на который вы ссылаетесь, - это тот, который я упоминаю в своем первом абзаце как jQuery#find
, который является методом экземпляров jQuery. В отличие от этого, $.find
- это метод функции jQuery
, совершенно другая вещь. (Это похоже на разницу между $.each
и jQuery#each
, за исключением того, что оба each
эс документированы.)
$ ('[name =' + name + ']'), это даст всем элементам совпадение с "name", но второй - $.find('[name =' + name + ']') не нравится этот $ ("родительский селектор ").find('[name =' + name + ']'), это найдет внутри выбранного элемента.
$.find
является внутренним ярлыком для Sizzle, и вы вообще не должны его использовать. Это не задокументировано, и я не уверен, где вы его нашли, но jQuery ничего не определяет, вы просто используете неправильный метод.