0

我正在阅读一本关于jQuery Mobile的书,一开始它说:

...这些选择器可以用于直接选择元素(例如$("div:contains('foo')")),也可以用于过滤其他选择器(例如 $("div").contains('foo'))。

有人可以解释这两个选择器之间的区别,因为我在这里错过了重点。

4

2 回答 2

2

$("div:contains('foo')"))使用:contains()选择器返回任何div其文本包含字符串的内容'foo'

我知道的唯一.contains()方法是$.contains(). 您不能在 jQuery 结果集(即选择的结果)上使用它,因此$("div").contains('foo')实际上不会起作用。事实上,方法$.contains()本身的工作方式与选择器完全不同:contains();因为它测试一个元素是否作为后代包含在另一个元素中。

坦率地说,我不确定这本书在说什么。考虑到它甚至使用了不是真正的 jQuery 代码的示例,该声明对我来说没有多大意义。

于 2012-11-19T15:26:35.780 回答
0

.contains()(function) 和选择器之间似乎没有区别:contains()

根据jQuery 源代码,两者都使用相同的代码(“Sizzle”管理 CSS 选择器功能),第 5350 行:

jQuery.contains = Sizzle.contains;
于 2012-11-19T15:21:02.947 回答