3

对不起 jquery ajax xml 101 问题...

我有 2 个问题:1)计算<RESULTS>. 在这种情况下,只有一个元素恰好称为 OBS。我想知道执行此操作的 jquery 方法。我用长手javascript拥有它。2)您能否建议访问这些计数的首选方法(向下阅读)。

XML 文件看起来像这样...

<TABLE>
 <RESULTS>
  <OBS>..</OBS>
 </RESULTS>
 <RESULTS>
  <OBS>..</OBS>
 </RESULTS>
</TABLE>

有 2 个<RESULTS>和 1 个孩子<OBS>返回。我已经覆盖了...

长手Javascript:

var items = request.responseXML.getElementsByTagName('RESULTS');
console.log("child Element Count= ",items[0].childElementCount); // will return 1 = OBS
console.log("nodes Count= ",items.length); // will return 2 =RESULTS

所以我们对此很好,但使用 jquery。

简写Jquery:

var count=$(result).find("RESULTS").size();         
var countLength=$(result).find("RESULTS").length; 

两者都将返回“2”。如何计算子元素的数量?在这种情况下,答案将是 1,因为只有<OBS>

提前致谢。

4

3 回答 3

3

$(result).find("RESULTS").length计算<RESULTS>元素的数量。您正在寻找第一个<RESULTS>元素中子元素的数量:

var count = $(result).find('RESULTS').first().children().length;
于 2013-06-10T20:58:04.293 回答
1

Why not try this instead

$("RESULTS:first-child").children().length
于 2019-01-16T02:20:18.897 回答
0

我不完全确定你在问什么,但我会展示几个可能会让你继续前进的例子:

// original XML string
var xml = '<TABLE><RESULTS><OBS>..</OBS></RESULTS><RESULTS><OBS>..</OBS></RESULTS></TABLE>';
// XMl -> jQuery object
var $xml = $($.parseXML(xml));

// Total item counts
var numberOfResults = $xml.find('RESULTS').size();
    console.log(numberOfResults); // output: 2
var numberOfObs = $xml.find('RESULTS>OBS').size();
    console.log(numberOfObs); // output: 2

// item count specific to the first <RESULTS> node:
var $firstResultsNode = $xml.find('RESULTS').first();
var numberOfObs = $firstResultsNode.children('OBS').size();
    console.log(numberOfObs); // output: 1
于 2013-06-10T21:05:12.167 回答