我在使用jQuery包含选择器时遇到了一些麻烦;
考虑以下html和jquery来检查元素是否包含某些文本。
例如 HTML:
<div>welcome :)</div>
jQuery Javascript:
$('div:contains("welcome :)")').length
如果我为该HTML运行上述JS代码。它不应该返回1。
但是,以下工作符合预期
$('div:contains("welcome")').length
有关如何容纳括号或冒号等特殊字符的任何建议吗?
答案 0 :(得分:2)
我认为这可能是因为JQuery选择器中使用了转义字符。您可以在转义字符(如“:”)之前使用“\”字符来解决问题。也可以使用下面的一般方法。
function jqescape(str) { return str.replace(/[#;&,\.\+\*~':"!\^\$\[\]\(\)=>|\/\\]/g, '\\$&'); }
我尝试了下面的表达,它给了我预期的结果:
$('div:contains("welcome \:")').length