Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE在jQuery中不使用HTML符号_Jquery - Fatal编程技术网

IE在jQuery中不使用HTML符号

IE在jQuery中不使用HTML符号,jquery,Jquery,我使用jQuery将文本放入div,如下所示: $("#commentview").html(rowData.Text); 例如,如果rowData.Text是“我没有看到这个。”,在IE中,结果显示为: "I haven't seen this." 但是,在Chrome中,“正确显示 "I haven't seen this." 你知道为什么会这样吗?如果有解决办法的话 谢谢 更新 我被Chrome网络开发工具愚弄了。我在rowData.Text中添加了一块手表,它向我

我使用jQuery将文本放入
div
,如下所示:

$("#commentview").html(rowData.Text);
例如,如果
rowData.Text
“我没有看到这个。”
,在IE中,结果显示为:

"I haven't seen this."
但是,在Chrome中,
正确显示

"I haven't seen this."
你知道为什么会这样吗?如果有解决办法的话

谢谢

更新


我被Chrome网络开发工具愚弄了。我在
rowData.Text
中添加了一块手表,它向我显示了
“我没有看到这个。”
,所以我认为这就是我正在使用的。但是当我查看填充
rowData
的实际JSON响应时,它有
“我没有看到这个。”

我猜您的数据实际上包含了这个
&apos
和Chrome会自动将其转换为单个报价,IE不会。因此,在附加之前,请在服务器上清理文本响应,或在客户端上对其进行规范化

正如我们在这里所看到的:jQuery不会处理转义单引号之类的事情。最后,
.html()
使用了
.innerHTML
,所以这就是您应该研究的内容,以简化问题的解决方案

尝试
console.log
ing您的
rowData.Text
,查看它是否确实包含
&apos然后执行如下操作:

$("#commentview").html(rowData.replace(/'/g, ""));

但更好的办法是在服务器端解决这个问题,如
&apos不是有效的HTML实体:

您可以使用我为此编写的跨浏览器脚本:

x="abc'<Hello 'World' in Tag>";
for (var i=0,y='';i<x.length;i++) y+='&#' + x.charCodeAt(i) + ';'
b.innerHTML=y
b=document.createElement('div')
x=“abc”;

对于(var i=0,y='';i你的两个例子都是相同的…不确定你在说什么。我看不出这两句话有什么不同,你能澄清一下吗?那里有一个
而不是一个引号字符。是的,在IE中,结果显示的是
而不是一个引号字符。当你说“结果显示”时您的意思是,作为一个查看页面的用户,您实际上会在div中看到
&apos;
,还是使用一些调试工具查看页面?当我在IE7中尝试它时,效果很好:。您可以尝试
.text()
方法,以查看它是否有任何不同……是的,我非常确定较旧版本的IE不支持
&apos;
,因为它不支持(或不支持)作为一个有效的html实体,它是作为xml实体引入的,因此只能在xhtml中工作,尽管某些浏览器总是乐于支持它。你可以使用
';
而不是
,它将在IE中工作。你是对的。请参阅我的更新。现在的问题是:规范化这个html实体的最佳方法是什么n客户端?如果必须在客户端上执行此操作,则简单的正则表达式应该可以完成此操作。我可能必须在客户端上执行此操作。我在服务器上使用ASP.NET MVC内置的Json序列化(感谢MS在无效HTML实体中烘焙)。我现在想知道是否还有其他实体需要注意。在.net方面似乎也是一个微不足道的替换:
Content.replace(“&apos;”,“'))
用'替换任何字符,并将任何字符串替换为正确的字符代码。这样您就不会有其他问题。我喜欢这个想法,但在我的特定情况下,源数据包含
,而不是
,因此您的代码无法帮助将其转换为IE可以处理的内容。