IE的jQuery特殊字符处理

问题描述

| 这是一个令人尴尬的场景,但我需要解决方案。 我正在使用一些名称作为li HTML元素的ID。这些名称中带有特殊字符。使用JQuery来获取ID。 可以说我的ID用法
var abc = li[id=\"someCompany=\\\"Some Term\\\"\"]
如果我称这个为
alert($(abc).parent()[0]); or 
alert($(abc).html()); 
我正在获取数据,并且在Firefox中一切正常,但在IE中却没有。 我在应用程序中显示的实际ID是
<li id=\"someCompany=&#034;Some Term&#034;\"> xyz </li>
我用.replace(/“ / gi,\” \\\“ \”)替换它 请让我知道,如何在IE中运行它,谢谢 抱歉,我需要在问题中提供更多信息... 首先,我获得ID为
var aaa = \"someCompany=&#034;some Data&#034;\";
我将其替换为
aaa = aaa.replace(/&#034;/gi,\"\\\"\").replace(/&#039;/gi,\"\\\'\").replace(/&amp;/gi,\"\\&\");
然后,
var abc = aaa.replace(/\"/gi,\"\\\\\\\"\").replace(/\\:/gi,\"\\:\").replace(/\'/gi,\"\\\\\\\'\");
然后我的问题如下... 当我尝试将上述行更改为
var abc = aaa.replace(/\"/gi,\"\\\"\").replace(/\\:/gi,\"\\\'\");
一切都很好,但我有一些名字,例如
var aaa = \"someCompany=&#034;some\'s Data&#034;\"; //In this case I need to handle more special chanracters
此处,
.replace(/\"/gi,\"\\\\\\\"\")
在Firefox中可以正常工作,但在IE中则不能。我怎样才能使其在IE中正常工作,请提出建议     

解决方法

尝试使用浏览器验证,例如IE中的单引号和斜杠以及FF中的双引号。     ,您正在使用哪个版本的IE?我在IE9和jsFiddle上运行,对我来说也可以在IE中使用(在IE7 / 8/9标准模式下也是如此)。我的代码和我的代码之间的唯一区别是,我在abc周围加上了引号,即var abc = \'li [id = \“ someCompany = \\\” Some Term \\\\\\“]” \'...我以为你已经在那里了吗? http://jsfiddle.net/benno_007/mhHJh/2/ 尽管.parent()[0]返回一个对象,但不返回xyz。如果您只需要访问xyz,则只需使用$(abc).html() 编辑: 使用这些笨拙的ID的替代方法可能是:
<li id=\"someCompany\" term=\"Some Term\">test</li>

$(\'#someCompany[term=\"Some Term\"]\').html();
此处:http://jsfiddle.net/benno_007/mhHJh/3/     ,
var abc = $(\"[id=\'someCompany=\\\"Some Term\\\"\']\");
alert($(abc).html()); //returns xyz
在IE7和8中对我有效,唯一的区别是整个属性值周围的单引号而不是双精度值