Отличие селектора атрибута Jquery с помощью Find

0

1

$('[name='+name+']')

В.С.

2

$.find('[name='+name+']')

# 1 результаты массива объектов jquery. , # 2 возвращает массив элементов

Как jquery определяет, когда возвращать объект vs jquery object.

  • 2
    На самом деле, я считаю, что $.find является внутренним ярлыком для Sizzle, и вы вообще не должны его использовать. Это не задокументировано, и я не уверен, где вы его нашли, но jQuery ничего не определяет, вы просто используете неправильный метод.
Теги:

2 ответа

2
Лучший ответ

Из вашего комментария ниже вы смешиваете две несвязанные функции. (Это легко сделать.)

Существует документированный метод экземпляров 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 для внутреннего метода. :-)

  • 0
    api.jquery.com/find
  • 1
    @faiz: Да, это не $.find . Метод, на который вы ссылаетесь, - это тот, который я упоминаю в своем первом абзаце как jQuery#find , который является методом экземпляров jQuery. В отличие от этого, $.find - это метод функции jQuery , совершенно другая вещь. (Это похоже на разницу между $.each и jQuery#each , за исключением того, что оба each эс документированы.)
Показать ещё 2 комментария
0

$ ('[name =' + name + ']'), это даст всем элементам совпадение с "name", но второй - $.find('[name =' + name + ']') не нравится этот $ ("родительский селектор ").find('[name =' + name + ']'), это найдет внутри выбранного элемента.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню