使用jQuery('DIVID').html()
方法读取DIV元素的内容时,Internet Explorer浏览器出现问题。我将一个简单的XML字符串插入到DIV元素中。但是当我尝试使用jQuery读回内容时,一些数据丢失了。它在Firefox中运行良好。
我的代码如下所示。
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<p><div id="AJAXTESTDATA"></div>jQuery Simple Test.</p>
<script>
var testAjax = document.getElementById("AJAXTESTDATA");
var tes = '<SPAN id="tt"><DATA1><DATA2><DATA3><SPAN id="doc">TEST</SPAN></DATA3></DATA2></DATA1></SPAN>';
alert("Actual Data:"+tes);
testAjax.innerHTML = tes;
var cbkData = jQuery('#AJAXTESTDATA').html();
alert("Data after inserting to DIV:"+cbkData);
</script>
</body>
</html>
编辑:
第二条警报消息将显示DIV标记的内容,如下所示:
插入DIV后的数据:<SPAN id=test><SPAN id=doccase>TEST</SPAN></DATA3></DATA2></DATA1></SPAN>
所以你可以看到大多数开始标签都丢失了!所以无论我使用什么标签名称,IE中的结果都是一样的。
有人能让我知道在通过IE阅读时截断数据背后的原因吗?
亲切的问候, 克里希纳。
答案 0 :(得分:0)
有人能让我知道在通过IE阅读时截断数据背后的原因吗?
HTML 4中没有c
标记。我假设IE正在以比其他浏览器更严格的方式删除无效标记。
如果您要将XML作为 text 数据插入(所有标记都可见),请使用.text()
代替.html()
。
答案 1 :(得分:0)
我同意@Pekka IE可能正在删除无效标签。您可以添加>
代替>
和<
代替<
答案 2 :(得分:0)
我同意Pekka:如果您使用.text()
代替.html()
,那么您的代码将不会被删除,但我认为您需要使用.text()
来设置值而不是.innerHTML
。如果您实际上并不期望显示XML数据(无论如何都不会以合理的方式显示)并且AJAXTESTDATA div实际上是隐藏的,那么这将有效。
jsFiddle示例here