JQuery - 特殊字符转义(Uncaught Error: Syntax error, unrecognized expression:的处理)

时间:2021-10-16 18:14:55

今天在改一个jQuery老项目时候,发现标签上的data-id中含有特殊字符时候报错Uncaught Error: Syntax error, unrecognized expression,如何处理?

一般情况下,在jQuery选择器中,很少会用到诸如“.”、“#”、“(”、“[”等特殊字符,因为根据W3C规定,HTML文档中属性的值是不能包含有这些个特殊字符的,但是在实际应用中,偶尔也会遇到表达式中含有“#”和“.”等特殊字符。这时候需要对这些字符进行转义。处理方法如下:比如属性值为data-id

dataId.replace(/\//, '\\\/').replace(/\s/g, "-").replace("(", "\\(").replace(")", "\\)")