1

起始情况

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

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)').

4

2 回答 2

4

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

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

于 2012-04-08T12:59:39.533 回答
1

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

$('a:contains(about)');
于 2012-04-08T13:02:18.307 回答