我正在阅读一本关于jQuery Mobile的书,一开始它说:
...这些选择器可以用于直接选择元素(例如$("div:contains('foo')"))
,也可以用于过滤其他选择器(例如 $("div").contains('foo')
)。
有人可以解释这两个选择器之间的区别,因为我在这里错过了重点。
我正在阅读一本关于jQuery Mobile的书,一开始它说:
...这些选择器可以用于直接选择元素(例如$("div:contains('foo')"))
,也可以用于过滤其他选择器(例如 $("div").contains('foo')
)。
有人可以解释这两个选择器之间的区别,因为我在这里错过了重点。
$("div:contains('foo')"))
使用:contains()
选择器返回任何div
其文本包含字符串的内容'foo'
。
我知道的唯一.contains()
方法是$.contains()
. 您不能在 jQuery 结果集(即选择的结果)上使用它,因此$("div").contains('foo')
实际上不会起作用。事实上,方法$.contains()
本身的工作方式与选择器完全不同:contains()
;因为它测试一个元素是否作为后代包含在另一个元素中。
坦率地说,我不确定这本书在说什么。考虑到它甚至使用了不是真正的 jQuery 代码的示例,该声明对我来说没有多大意义。
.contains()
(function) 和选择器之间似乎没有区别:contains()
。
根据jQuery 源代码,两者都使用相同的代码(“Sizzle”管理 CSS 选择器功能),第 5350 行:
jQuery.contains = Sizzle.contains;