问题描述
|
我有一个带有特殊字符的ID,例如
var aaa = \"someCompany="some\'s Data"\";
aaa = aaa.replace(/"/gi,\"\\\"\").replace(/'/gi,\"\\\'\").replace(/&/gi,\"\\&\");
var abc = aaa.replace(/\\\"/gi,\"\\\\\\\"\").replace(/\\:/gi,\"\\:\").replace(/\\\'/gi,\"\\\\\\\'\");
var abcId = \"li[id=\\\"\" + abc + \"\\\"]\";
$(abcId).addClass(\" sel\");
在IE中,无法为\“ abcId \\”添加\“ addClass \”,但是在firefox中可以正常工作。
谁能告诉我如何处理这些特殊字符...
提前致谢
解决方法
我不确定您要做什么,但是您可能会考虑做一些便宜的事情,例如在编写ID时对URL进行编码。然后,您可以使用
$(\'#\' + escape(theID))
通过JQuery进行获取。之后,您可以添加带有ѭ2add的课程
为了进一步说明,您将使用如下编码的ID URL编写HTML :(大多数服务器技术都可以通过简单的方法调用来完成此操作)
<div id=\"someCompany%3D%26%23034%3Bsome\'s+Data%26%23034%3B\">Content here.</div>
然后您的JavaScript将会像这样:
$(\'#\' + escape(\"someCompany="some\'s Data"\")).addClass(\"sel\")
,为什么不尝试:
$(abc).addClass(\"sel\");
如果您具有li的ID,为什么要使用选择器?