jquery使用包含选择器查找异常

时间:2017-10-23 15:06:45

标签: javascript jquery sizzle

我有一些运行jQuery 1.7.2的代码 尝试使用此选择器

时遇到错误
var x = "span:contains(\"C) Foo (Bar)\")";
$('body').find(x)

https://jsfiddle.net/elewinso/dfbn82wo/7/

这个问题已在JQuery 1.8及更高版本中修复,但由于我无法切换我的jQuery,我希望找到一个补丁。

1 个答案:

答案 0 :(得分:2)

问题是你的选择器让jQuery的解析器感到困惑,因为它包含括号。它认为您要匹配的)是其contains:内容过滤器的结束括号。

您可以使用filter()来解决此问题。

$('span').filter(function() {
    return $(this).text().indexOf('"C) Foo (Bar)"') != -1;
});