我有一个问题,为什么这两个代码片段是不同的。
$('#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
返回数组对象[]
和jQuery函数不可访问?
//编辑
我使用过jQuery 1.4.2和Firebug控制台。
//练习找到答案
此代码将返回jQuery object reference,并且所有jQuery函数都是可访问的。
$('any_selector')
`//jQuery(item1),jQuery(item2),...,jQuery(item-N) Console output $('any_selector').text()`
此代码返回JavaScript数组对象,因此jQuery的任何函数都不能应用于结果集。即使结果集看起来是相同的。
$.find('any_selector')
`//[item1,item2,...,item-N] Consolee output`
`$.find('any_selector').text()`
但是我们可以使用一些技巧(奇怪的技巧)将js数组包装到jQuery选择器中:
$($.find('any_selector_as_inner_select')).val()
//感谢大家的帮助!
发布于 2011-05-22 01:10:33
这样做不起作用的原因是因为find()
允许您根据您已经选择的内容过滤一组元素。例如,如果您想选择特定表单中的所有输入,您可以这样写: made.For:
$('#aParticularForm').find('input')
它不能自己调用。
https://stackoverflow.com/questions/6083183
复制相似问题