Rus*_*ell 1 html javascript xml ajax jquery
好的,我正在从XML文件中提取数据,以动态填充我的网页元素.我的问题是,当我使用JQuery .ajax来提取xml文件时,它会剥离我的HTML标记.
例如,
XML文件中的数据:
<transcript><p>Hello, world</p></transcript>
Run Code Online (Sandbox Code Playgroud)
网页上的所需输出:
<p>Hello, world</p>
Run Code Online (Sandbox Code Playgroud)
实际产量:
Hello World
Run Code Online (Sandbox Code Playgroud)
这是我的ajax函数中的代码:
$(xmlData).find('item').each(function() {
var n = $(this).find('transcript').text();
Run Code Online (Sandbox Code Playgroud)
我试过使用JQuery的'.html()',但它返回null.我能解决这个问题最简单的方法是什么?最好不要改变我已经做过的太多.
提前致谢.
使用text将根据您的经历剥离标签.您可以改为在脚本节点上使用jQuery children方法(引用)来获取HTML.这是一个工作示例:http://jsfiddle.net/gjwyd/
$(document).ready(function() {
$.ajax({
type: "POST",
url: "/echo/xml/",
dataType: "xml",
data: {
xml: "<transcript><p>Hello, world</p></transcript>"
},
success: function(xml) {
var container = $('#content');
var html = $(xml).find('transcript').children();
container.html(html);
}
});
});?
Run Code Online (Sandbox Code Playgroud)
关键是这一行:
var html = $(xml).find('transcript').children();
Run Code Online (Sandbox Code Playgroud)
并确保将dateType设置为xml.
从XML响应中获取HTML时,它可能缺少默认样式.例如,段落标记可能没有display: block.重置样式可能是解决此问题的一种方法.更正确且可能更简单的方法是将HTML内容放在XML中作为其他评论者之一建议的XML.
$(document).ready(function() {
$.ajax({
type: "POST",
url: "/echo/xml/",
dataType: "xml",
data: {
xml: "<transcript><![CDATA[<p>Hello, world</p><p>Bye</p>]]></transcript>"
},
success: function(xml) {
var container = $('#content');
var html = $(xml).find('transcript').text();
container.html(html);
}
});
});
Run Code Online (Sandbox Code Playgroud)
正如其他人所说,html不会对XML有用.