【发布时间】:2017-12-22 06:50:42
【问题描述】:
我正在从 XML 数据库中提取数据。大致是这样的:
<record>
<eventname></eventname>
<company></company>
<city></city>
<state></state>
</record>
然后我用以下内容解析它:
success: function(xml){
$('record',xml).each(function() {
var evname = $(this).find('eventname').text();
var co = $(this).find('company').text();
var city = $(this).find('city').text();
var state = $(this).find('state').text();
...
获得变量后,我为各个状态运行 each():
$(this).find('state').each(function(){
这样我可以返回每个状态的事件,而且效果很好。然而,我今年需要做的是提供每个州的事件计数。由于种种原因,最可靠的项目是“城市”。所以我尝试了:
var count = $(this).find('city').length;
但是当我在状态循环中用这个解析它时:
$('<div></div>').html('<p>Total: '+ count +'</p>').prependTo('.'+ state);
我得到每个城市的段落行和结果数“1”,所以:
总计:1 总计:1 总计:1
...
我认为这是因为 AJAX 循环遍历每条记录,并在找到它时只返回一个结果。每个州的计数(段落数)都是正确的。如果一个状态有 15 个事件,则前面有 15 个“Total: 1”。所以我的问题(我尝试了很多不同的解析方法)是如何对数字求和并得到如下结果:“总计:15”?
【问题讨论】:
-
您能否提供您的
state循环,以及在何处/何时调用它? -
我的帖子里有。它在 $(document).ready 上调用,在 $('record',xml).each 之后调用。