这有点令人尴尬,但我需要解决方案。
我使用一些名称作为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="Some Term""> xyz </li>
我用.replace(/“/ gi,”\“”)
替换它请告诉我,如何让它在IE中运行,提前致谢
对不起,伙计们,我需要在我的问题中提供更多信息......
首先,我得到ID为
var aaa = "someCompany="some Data"";
我将其替换为
aaa = aaa.replace(/"/gi, "\"").replace(/'/gi, "\'").replace(/&/gi, "\&");
然后,
var abc = aaa.replace(/"/gi, "\\\"").replace(/\:/gi, "\:").replace(/'/gi,"\\\'");
然后我的问题如下...... 当我尝试将上面的行更改为
时var abc = aaa.replace(/"/gi, "\"").replace(/\:/gi, "\:").replace(/'/gi,"\'");
一切都很好,但我有一些名字,如
var aaa = "someCompany="some's Data""; //In this case I need to handle more special chanracters
在这里,.replace(/"/gi, "\\\"")
在Firefox中运行良好,但在IE中运行不正常。如何让它在IE中运行,请建议
答案 0 :(得分:1)
尝试使用浏览器验证,例如IE中的单引号和斜线,以及FF中的双精度。
答案 1 :(得分:0)
您使用的是哪个版本的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();
答案 2 :(得分:0)
var abc = $("[id='someCompany=\"Some Term\"']");
alert($(abc).html()); //returns xyz
在IE7和8中适用于我,唯一的区别是整个属性值的单引号而不是你有的双打