Jquery ChildElementCount

时间:2013-06-10 20:56:01

标签: jquery

抱歉jquery ajax xml 101问题......

我有两个问题: 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>

提前致谢。

3 个答案:

答案 0 :(得分:3)

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

var count = $(result).find('RESULTS').first().children().length;

答案 1 :(得分: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

答案 2 :(得分:0)

为什么不试试这个

$("RESULTS:first-child").children().length