jQuery包含选择器和特殊字符

时间:2013-05-02 03:02:55

标签: javascript jquery

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

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

例如 HTML:

<div>welcome :)</div>

jQuery Javascript:

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

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

但是,以下工作符合预期

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

有关如何容纳括号或冒号等特殊字符的任何建议吗?

1 个答案:

答案 0 :(得分:2)

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

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

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

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