按属性名称的结果的XML编号

时间:2013-02-21 16:52:20

标签: javascript jquery xml

我正在使用以下XML文件

     <OnThisDate date="2013-02-22">
      <event jobnumber="14434" allocated="1" name="ADI UK ">
        <i1001 driverID="30" driverName="None None" groupname="i100"/>
        <i251 driverID="0" driverName="" groupname="i25"/>
        <i252 driverID="0" driverName="" groupname="i25"/>
      </event>

      <event jobnumber="14559" allocated="1" name="Travel">
        <i1006 driverID="46" driverName="Martin Macklin" groupname="i100"/>
      </event>

      <event jobnumber="14560" allocated="1" name="Travel">
        <i1005 driverID="0" driverName="" groupname="i100"/>
      </event>

      <event jobnumber="14690" allocated="1" name="Travel">
        <i253 driverID="0" driverName="" groupname="i25"/>
      </event>

      <event jobnumber="14695" allocated="1" name="Holiday">
        <i602 driverID="10" driverName="Alan Linney " groupname="i60"/>
      </event>

      <event jobnumber="13595" allocated="1" name="Sandown Park Racecourse">
        <i1002 driverID="6" driverName="Simon Latcham" groupname="i100"/>
      </event>

      <event jobnumber="14447" allocated="1" name="Sandown Racecourse">
        <i125 driverID="35" driverName="Carl Boxall" groupname="i12"/>
      </event>

      <event jobnumber="14030" allocated="1" name="Warwick Racecourse">
         <i601 driverID="5" driverName="Tom Robson" groupname="i60"/>
      </event>
     </OnThisDate>

每个事件下的节点都有一个 groupname 属性,我希望按组名获得总结果,因此在示例中,groupname i25的总和将为3

我已经能够使用此代码获取事件子项的总和

var count=$(data).find('event').children().size();
console.log(count) 

但我无法弄清楚如何让其余的工作

请帮忙吗? ,提前谢谢

1 个答案:

答案 0 :(得分:1)

要计算具有特定组名的所有元素:

var groupname = "i25";
var count = $(data).find('*[groupname="' + groupname + '"]').length;

Demo

旁注:自jQuery 1.8起,不推荐使用.size()。建议使用.length