我将此xml作为Ajax调用的responseXml的一部分:
<banner-ad>
<title><span style="color:#ffff00;"><strong>Title</strong></span></title>
</banner-ad>
当我使用这个jQuery(responseXml).find(“title”)。text();结果是“标题”。 我也尝试了jQuery(responseXml).find(“title:first-child”),但结果是[object Object]。
我想得到结果:
<span style="color:#ffff00;"><strong>Title</strong></span>
请告诉我如何在jQuery中执行此操作。
提前感谢您的帮助。
此致 RACS
答案 0 :(得分:0)
这可能有用:
$(responseXml).find("title").html();
答案 1 :(得分:0)
您的问题是,您不能简单地将一个文档(XML响应)中的节点附加到另一个文档(您的HTML页面)。这个问题有两个方面:
style
属性。因此,文本不会为黄色(#ffff00
)。.html()
在HTML文档中的作用。为了完成这项工作,我们需要从XML文档中提取XML字符串。有些浏览器支持XML节点(即IE)上的.xml
属性,其他浏览器都带有XMLSerializer
对象:
// find the proper XML node
var $title = $(doc).find("title");
// either use .xml or, when unavailable, an XMLSerializer
var html = $title[0].xml || (new XMLSerializer()).serializeToString($title[0]);
// result:
// '<title><span style="color:#ffff00;"><strong>Title</strong></span></title>'
然后我们必须将此HTML字符串提供给jQuery,以便可以从中创建新的,真实的HTML元素:
$("#target").append(html);
有一个小提琴可以显示这个:http://jsfiddle.net/Tomalak/QWHj8/。这个例子也摆脱了多余的<title>
元素。
反正。如果您有机会影响XML本身,那么更改它是有意义的:
<banner-ad>
<title><span style="color:#ffff00;"><strong>Title</strong></span></title>
</banner-ad>
只需对<title>
的有效负载进行XML编码,您就可以在jQuery中执行此操作:
$("#target").append( $(doc).find("title").text() );