这两个命令应该是等效的。
jQuery('a').filter(':contains(about)');
和
jQuery.find('a').filter(':contains(about)');
实际上,第一个命令运行良好,而第二个命令抛出以下异常:
TypeError: :contains(about) is not a function
为什么会这样? jQuery('a')
和jQuery.find('a')
不应该返回相同的对象吗?如果没有,有什么区别?
我正在动态构建一个JQuery命令链(我的项目Abmash中使用的JQuery Java Wrapper的一部分)。因此,我更喜欢像jQuery.find('a').filter(':contains(about)')
这样的方法链。
答案 0 :(得分:4)
jQuery.find('a')
返回一个数组(Array.filter()
将函数作为参数。)
jQuery('a')
返回一个类似jQuery-array-Object的对象
答案 1 :(得分:1)
对find($ .find())的静态调用返回一个数组而不是一个包装集。你想要的是我想的:
$('a:contains(about)');