Javascript IE的Jquery特殊字符处理

Javascript IE的Jquery特殊字符处理,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,这是一个有点尴尬的场景,但我需要解决方案 我使用一些名称作为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="someC

这是一个有点尴尬的场景,但我需要解决方案

我使用一些名称作为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>
我将把它替换为

aaa = aaa.replace(/&#034;/gi, "\"").replace(/&#039;/gi, "\'").replace(/&amp;/gi, "\&");
那么

然后我的问题是。。。。 当我尝试将上面的行更改为

var abc = aaa.replace(/"/gi, "\"").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?我使用的是IE9和JSFIDLE,它们在IE中为我工作(也在IE7/8/9标准模式下)。您的代码和我的代码之间唯一的区别是,我在abc周围加了引号,即var abc='li[id=“someCompany=\'someterm\'”。。。我想你已经在那里了吧

尽管.parent()[0]返回的是对象,而不是xyz。如果您只是需要访问xyz,只需使用$(abc.html()

编辑:

使用这些笨拙ID的替代方案可能是:

<li id="someCompany" term="Some Term">test</li>

$('#someCompany[term="Some Term"]').html();
测试 $('#someCompany[term=“someterm”]').html(); 在这里:


在IE7和IE8中对我有效,唯一的区别是整个属性值周围的单引号,而不是您使用的双引号

尝试使用浏览器验证,如IE中的单引号和斜杠,FF中的双引号。

我已经提到我尝试了$(abc).html()。还是没能拿到。在IE6、IE7、IE8Hmm中尝试过,我想IE9s标准模式一定与实际浏览器完全不同。你能试试我刚才在答案后面附加的其他建议吗?你必须在你的IE版本上测试这个JSFIDLE链接,因为它们都是从我的IE9开始工作的,但是如果它们呈现的完全不同,那就没有意义了,哈哈。对不起,这真的很奇怪。。。IE中是否有任何提示?无效的未定义?空字符串?如果为null,则表示IE没有正确识别选择器(可能IE试图将htmlentities转换为其他内容)。我读过一些关于尝试在选择器中对引号进行双/三转义的文章,但我不知道这是否对本例有帮助。。。我正在下载IE测试仪,看看是否还能找到其他东西。。。另一方面,我不确定是否使用alert($('li').filter('li[id=someCompany][terms=“someterms”]').html();行,但值得一试吗?嘿,对不起,我需要为我的问题提供更多细节。我刚刚编辑了我的问题,请检查是否无法将“in-some”数据输出为';?只是一个建议,考虑使用数据-*,而不是填入所有的ID,然后不得不罚款它。在我上面的例子中,我只是把它作为XYZ,但还有更多,实际上这些是HTML 4站点中ID属性的规则:“ID和名称令牌必须以字母([-ZA-Z])开头。后面可能跟有任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“_”)、冒号(“:”)和句点(“.”)。我同意,但这是一个非常奇怪的场景,我没有任何id。我只需要依赖于此。对不起,这很有效。。请检查我更新的问题以了解我的要求。
var aaa = "someCompany=&#034;some's Data&#034;"; //In this case I need to handle more special chanracters
<li id="someCompany" term="Some Term">test</li>

$('#someCompany[term="Some Term"]').html();
var abc = $("[id='someCompany=\"Some Term\"']");
alert($(abc).html()); //returns xyz