0

我有一个变量,我想在选择器中使用,但该变量包含特殊字符。有没有办法做到这一点?JQuery选择器:如何转义插入选择器的变量中的特殊字符

hasSpecialChr='dynamicVar[1][3]'; 

element = $('li.parent#'+hasSpecialChr); 

编辑:在下面的第一条评论中回答。

+3

快速谷歌搜索你的问题的说明:https://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-notation/ –

+0

尴尬随之而来... – Phil

+1

可能的重复:http://stackoverflow.com/questio ns/739695/jquery-selector-value-escaping – JonSG

回答

0

试试这个:

hasSpecialChr='dynamicVar\\[1\\]\\[3\\]'; 
element = $('li.parent#'+hasSpecialChr); 
+0

我不认为这有效。我认为他们需要$(“#dynamicVar \\\ [1 \\\] \\\ [3 \\\]”); – JonSG

+0

是的,我试过了,它不起作用。 \ \只是逃脱了之后的第一个角色。 – Phil

+0

对不起,我更新了我的答案 –

0

这可能会解决你的问题:

s.replace(/[^a-z\d\s]+/gi, ""); 

删除所有除字母,数字和空格。

hasSpecialChr='dynamicVar[1][3]'; 
hasSpecialChr.replace(/[^a-z\d\s]+/gi, ""); 
element = $('li.parent#'+hasSpecialChr);