我尝试使用一些改编自using Jquery to get XML and put into html table的代码。除了XML文件之外,它的工作几乎完美无缺,我加载了每个项目的属性ID号,我无法加载。
所以XML看起来有点像..
<Incidents>
<Incident id="123">
<ModTime>2016-01-23T08:00:00Z</ModTime>
<comments>comments here</severity>
<currentUpdate>update</currentUpdate>
<status>Active</status>
</incident>
<Incidents>
<Incident id="456">
<ModTime>2016-01-23T08:00:00Z</ModTime>
<comments>comments here</severity>
<currentUpdate>update</currentUpdate>
<status>Active</status>
</incident>
我以为我可以适应这个: How to parse xml attributes with jQuery alone?
<script type='text/javascript'>//<![CDATA[
$.ajax({
type: "GET",
url: "feed.xml",
dataType: "xml",
success: function(xml){
$('#table').append('<h2>XML</h2>');
$('#table').append('<table id="show_table" border="1" >');
$(xml).find('Incident').each(function(){
var $feed = $(this);
var id = $feed.find('Incident').attr('id');
var mod = $feed.find('ModTime').text();
var comments = $feed.find('comments').text();
var update = $feed.find('currentUpdate').text();
var status = $feed.find('status').text();
var html = ' <tr><td >' + id + '</td><td >' + mod + '<br>' + comments + '</td><td>' + update + '</td><td>' + status +'</td><td > </tr>';
$('#show_table').append(html);
});
}
});
</script>
但是,所有ID行显示都是&#39;未定义&#39;对于每个事件。
我设法得到的最接近的是......
var id = $(xml).find("Disruption").attr("id");
但只显示所有行的相同ID号。
答案 0 :(得分:0)
$(xml).find('Incident')
你得到了所有的事件。
var $feed = $(this);
循环播放每个事件,将元素存储在$feed
var id = $feed.find('Incident').attr('id');
然后,您可以搜索事件的后代以查找更多事件(并获取第一个事件的ID)。
其他事件中没有存储任何事件,因此您无法找到任何事件(并获取undefined
,这是您选中的0事件之一的ID。< / p>
你只想:
var id = $feed.attr("id");