Подтвердить что ты не робот

JQuery найти переменную $.find('selector') по сравнению с $('selector')

У меня есть вопрос, почему эти два фрагмента кода отличаются.

$('#ctl00_DDMenu1_HyperLink1')  
//jQuery(a#ctl00_DDMenu1_HyperLink1 Default.aspx) Console output
$('#ctl00_DDMenu1_HyperLink1').text()

Возвращаемый код возвращает: Some link text

Но

$.find('#ctl00_DDMenu1_HyperLink1')  
//[a#ctl00_DDMenu1_HyperLink1 Default.aspx] Consolee output
$.find('#ctl00_DDMenu1_HyperLink1').text()

Возвращает

TypeError: $.find("#ctl00_DDMenu1_HyperLink1").text не является функцией

Означает ли это, что $.find возвращает объект Array [], а функции jQuery недоступны?

//EDIT

Я использовал jQuery 1.4.2 и использовал Firebug Console.

//Ответ найденный практикой

Этот код вернет ссылку jQuery object и доступна вся функция jQuery.

$('any_selector')
//jQuery(item1),jQuery(item2),...,jQuery(item-N) Console output $('any_selector').text()

Этот код возвращает объект JavaScript Array, поэтому любая функция jQuery не может быть применена к набору результатов. Даже если результат кажется идентичным.

$.find('any_selector')
//[item1,item2,...,item-N] Consolee output
$.find('any_selector').text()

Но мы можем сделать трюк (странный трюк) для wrapp js Array в селектор jQuery:

$($.find('any_selector_as_inner_select')).val()

//Спасибо за помощь ребятам!

4b9b3361

Ответ 1

Причина, по которой это не работает, состоит в том, что find() позволяет вам фильтровать набор элементов на основе выбранного вами выбора. Например, если вы хотите выбрать все входы в определенной форме, вы можете написать:

$('#aParticularForm').find('input') 

Он не может быть вызван сам по себе.