【发布时间】:2011-08-30 07:17:21
【问题描述】:
我有一个问题,为什么这两个代码 sn-ps 不同。
$('#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函数不可访问?
//编辑
我使用过 jQuery 1.4.2 和 Firebug 控制台。
//通过实践找到答案
此代码将返回 jQuery 对象引用,并且所有 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()
//感谢大家的帮助!
【问题讨论】:
-
您不应该使用 .find() 来查找具有特定 id 属性的元素。每个元素的 ID 应该是唯一的。如果你想检查某个后缀或前缀,那么你可以这样做。
-
这只是函数工作方式不同的一个例子。无论如何感谢您的帮助:)
标签: jquery find css-selectors