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



起始情况

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

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包装器的一部分)。因此,我更喜欢像 jQuery.find('a').filter(':contains(about)') 这样的方法链。

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

jQuery('a') 返回一个 jQuery-array-like-Object

查找的

静态调用 ($.find()) 返回一个数组,而不是一个包装的集合。我认为您正在寻找的是:

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

最新更新