IE 9 :: 使用 Javascript 将 XML 代码显示到 Div 中
IE 9 :: Display XML code into a Div with Javascript
我一直在尝试使用Javascript将我的XML代码显示到Div中,但在Internet Explorer中无法按如下方式工作:
$('footer #xml_content').val($parsed.find('poem').html());
$('div#explanation').html($parsed.find('explanation').html());
虽然它确实可以text()
以下函数一起使用,但 XML 标记不会显示:
$('footer #xml_content').html($parsed.find('poem').text());
$('div#explanation').html($parsed.find('explanation').text());
谁能弄清楚这个谜题?谢谢!
function go_poem(pnum, poem, live, id_timer1, id_timer2, reset) {
$.ajax({
type: "GET",
url: _list_poems[ parseInt(pnum)-1 ],
dataType: "xml",
success: function (xml) {
var $parsed = $(xml);
var $texto = $parsed.find("texto");
$('footer #xml_content').html(
document.createTextNode( $('poem').html() )
);
$('div#explanation').html(
document.createTextNode( $('explanation').html() )
);
/* Remainder of code not included */
如果您真的想将这些标签显示为文本,则必须使用 <
或 >
转义所有<>
。
更新的答案
在聊天中与OP交谈后,我们确定了以下模式:
var box = $("<div></div>");
$("footer #xml_content").html(function () {
box.html( $parsed.find("poema").clone() );
return box.html();
});
由于权限限制,我们不得不将 XML 节点添加到临时节点,然后返回临时、未附加节点的 html。
原始答案
从 XML 创建textNode
:
document.createTextNode( $parsed.find('poem').html() );
但请注意,您的标记可能与您一开始编写的内容不完全一样。我创建了一个小提琴来演示这种方法,并在末尾包含一些无效标记以进行演示。
浏览器将尝试修复/重新排列元素和属性。因此,从$.fn.html
检索的内容可能无法反映一开始提供给解析器的内容。
http://jsfiddle.net/jonathansampson/zvxj3yh4/
相关文章:
- JavaScript/jQuery:显示DIV,直到用户停止在Textbox中键入
- 在if/else语句中显示DIV
- onSubmit在php脚本的开头显示DIV
- 使用getElementsByClassName在点击时显示Div的Javascript
- 使其在悬停文本时显示Div
- 如何只在收到服务器的回复消息后显示DIV
- 隐藏/显示DIV
- 简单的多选项卡隐藏/显示DIV
- 当满足javascript/jquery条件时显示DIV(包括jsFiddle链接)
- Javascript在秒消失时显示DIV元素,并在此之后隐藏栏的选项
- 如何根据另一个 DIV 内容的可见性显示 DIV 内容
- 单击时隐藏并显示 Div
- 如果选择了所有无线电中的任何一个选项,则显示 Div
- 如何根据 Div ID 内容隐藏/显示 DIV
- 在 JQuery 对话框中隐藏和显示 Div 内容
- 检测YouTube时间然后显示DIV?使用 JavaScript
- 按自定义顺序显示 DIV
- 当用户从页面底部达到 X 像素时,如何显示 DIV
- 在提交时显示 DIV 的内容
- 单击单选选择时动态显示 DIV