jQuery包含选择器和特殊字符

jQuery contains selector and special char

本文关键字:特殊字符 选择器 包含 jQuery      更新时间:2023-09-26

我有一点麻烦使用jQuery包含选择器;

考虑下面的html和jquery来检查元素是否包含特定的文本。

例如

HTML:

<div>welcome :)</div>

jQuery Javascript:

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

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

然而,以下工作如预期

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

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

我认为这可能是因为JQuery选择器中使用的转义字符。您可以在转义字符(如':')前使用'''字符来解决此问题。对于一般方法,也可以使用下面的函数。

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

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

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