JQuery过滤器(字符串选择器)不能与find()结合使用

时间:2012-04-08 12:56:13

标签: jquery filter find selector

开始情况

这两个命令应该是等效的。

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)')这样的方法链。

2 个答案:

答案 0 :(得分:4)

jQuery.find('a')返回一个数组(Array.filter()将函数作为参数。)

jQuery('a')返回一个类似jQuery-array-Object的对象

答案 1 :(得分:1)

对find($ .find())的静态调用返回一个数组而不是一个包装集。你想要的是我想的:

$('a:contains(about)');