用户jQuery从XML获取嵌套元素
我在转动轮子。 如何从以下XML中获取以下嵌套元素的值(我还在下面放置代码)? 我追随“descShort”值,然后是资本“Last”和资本“变化”:
DJI
NYSE DELAYED Dow Jones Industrials DOW JONES DOW JONES 11144.57 11153.79 10973.92 11018.66 -125.9 -1.1% 11144.57 11153.79 10973.92 11018.66 -125.9 -1.1% 4 16-Apr-2010 16:03:00 XAO
ASX DELAYED ASX All Ordinaries All Ordinaries ALL ORDS 06-Mar-1970 5007.30 5007.30 4934.00 4939.40 -67.9 -1.4% 5007.30 5007.30 4934.00 4939.40 -67.9 -1.4% 997 19-Apr-2010 17:02:54
$.ajax({ type: "GET", url: "stockindices.xml", dataType: "xml", success: function(xml) { $(xml).find('index').each(function(){ var self = $(this); var code = self.find('indexDesc'); $(code).find('indexDesc').each(function(){ alert(self.find('descShort').text()); }); $('').html(values[0].text()).appendTo('#marq'); }); } });
你的function有一些缺陷。 这应该这样做:
success: function(xml) { $(xml).find('index').each(function(){ var value = $(this).find('indexDesc descShort').text(); value += ' ' + $(this).find('indexQuote capital last').text(); value += ' ' + $(this).find('indexQuote capital change').text(); $('').text(value).appendTo('#marq'); }); }
对您的代码有两条评论:
var code = self.find('indexDesc'); $(code).find('indexDesc').each(function(){ alert(self.find('descShort').text()); });
在这里,您将元素indexDesc
分配给变量code
,稍后您尝试在indexDesc
找到元素indexDesc
(它不存在)。
$('').html(values[0].text())
我真的很想知道values
来自哪里,它永远不会被宣布。 而且您不需要在单引号中转义双引号。
我真的建议阅读文档和教程,以获得jQuery的基础知识。
success: function(xml) { $(xml).find('index indexDesc descShort').each(function(){ $('').html($(this).text()).appendTo('#marq'); }); }
第二个请求的示例(这是最可读的,可能的一些优化)
success: function(xml) { $(xml).find('index').each(function(){ var desc = $('indexDesc descShort', this).text(); var last = $('indexQuote capital last', this).text(); var change = $('indexQuote capital change', this).text(); //Do whatever with the text values }); }