2

我在使用 jQuery 包含选择器时遇到了一些麻烦;

考虑以下 html 和 jquery 来检查元素是否包含某些文本。

例如 HTML:

<div>welcome :)</div>

jQuery Javascript:

$('div:contains("welcome :)")').length

如果我为该 HTML 运行上述 JS 代码。它没有返回应有的 1。

但是,以下工作按预期工作

$('div:contains("welcome")').length

任何建议如何适应特殊字符,如括号或冒号等?

4

1 回答 1

3

我认为这可能是因为 JQuery 选择器中使用了转义字符。您可以在转义字符(如 ':' )之前使用 '\' 字符来解决问题。也可以使用以下功能的一般方法。

function jqescape(str) { return str.replace(/[#;&,\.\+\*~':"!\^\$\[\]\(\)=>|\/\\]/g, '\\$&'); }

我尝试了以下表达式,它给了我预期的结果:

$('div:contains("welcome \:")').length
于 2013-05-02T06:32:08.147 回答