繁体   English   中英

从XML中检索的数据显示为Object对象

[英]Retrieved data from XML showing as Object object

我有以下XML结构:

<item>
  <title>title</title>
  <description>description</description>
</item>

以下方法来获取和显示XML“

 $.ajax({ url:'feed.xml', dataType:'xml', type:'GET', success: xmlParser, }); function xmlParser(xml){ $(xml).find("item").each(function(){ $("#container").append('<div class="test">' + $(this).find("title") + '</div>'); }); }; 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="container"> <!-- print results here --> </div> 

但是,在页面上,它打印[Object object]六次(因为有六个item's )。 不确定为什么?

$(this).find("title")返回一个jQuery对象。 我假设你想要显示里面的文字。 您可以使用jQuery 文本方法执行此操作

 function xmlParser(xml) { $(xml).find("item").each(function() { $container.append('<div class="test">' + $(this).find("title").text() + '</div>'); }); }; var $container = $("#container"); var xml = "<items><item><title>title 1</title><description>description 1</description></item><item><title>title 2</title><description>description 2</description></item><item><title>title 3</title><description>description 3</description></item></items>"; xmlParser(xml); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="container"> <!-- print results here --> </div> 

这是因为+运算符在$(this).find("title")上隐式调用toString 解决此问题的最简单方法是使用逗号运算符。

 function xmlParser(xml) { $(xml).find("item").each(function() { $("#container").append('<div class="test">' + $(this).find("title").text() + '</div>'); }); }; var data = "<item><title>title</title><description>description</description></item>"; xmlParser(xml); 
 <script src="https://code.jquery.com/jquery-3.3.1.js"></script> <div id="container"></div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM