.contains和:之间的区别包含在jQuery中

时间:2012-11-19 15:17:20

标签: jquery

我正在阅读jQuery Mobile上的一本书,并在开头说明:

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

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

2 个答案:

答案 0 :(得分:2)

带有:contains() selector

$("div:contains('foo')"))会返回其文字包含字符串div的所有'foo'

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

坦率地说,我不确定这本书的内容。考虑到它甚至使用了不是真正的jQuery代码的例子,那句话对我来说并没有多大意义。

答案 1 :(得分:0)

.contains()(函数)与:contains()选择器之间似乎没有差异。

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

jQuery.contains = Sizzle.contains;