按ID计算元素

时间:2014-05-20 15:19:03

标签: javascript count elements

我需要能够在我使用的网站上设置一个包含未结订单数量的var。

警告: 由于某些原因,这个网站每个订单一遍又一遍地使用相同的ID,但由于这不是我的网站,我无法改变它。

我当前订单的代码:

<div id="orderlist">
<label id="l61">05/19/2014 08:57:34</label>
<label id="l62">0.00066000</label>
<label id="l63">Buy</label>
<label id="l64">6</label>
<label id="l64">6</label>
<label id="l62">0.00396000</label>
<label id="l65" onclick="cancelOrder(346046);">Cancel</label>
<div id="b1"></div>
<label id="l61">05/19/2014 03:08:35</label>
<label id="l62">0.00078000</label>
<label id="l63">Sell</label>
<label id="l64">2</label>
<label id="l64">1</label>
<label id="l62">0.00078000</label>
<label id="l65" onclick="cancelOrder(38493);">Cancel</label>
<div id="b1"></div>
<label id="l61">05/19/2014 03:12:08</label>
<label id="l62">0.00076000</label>
<label id="l63">Sell</label>
<label id="l64">14</label>
<label id="l64">14</label>
<label id="l62">0.01064000</label>
<label id="l65" onclick="cancelOrder(38495);">Cancel</label>
<div id="b1"></div>
<label id="l61">05/19/2014 03:13:49</label>
<label id="l62">0.00077000</label>
<label id="l63">Sell</label>
<label id="l64">15</label>
<label id="l64">15</label>
<label id="l62">0.01155000</label>
<label id="l65" onclick="cancelOrder(38497);">Cancel</label>
<div id="b1"></div> </div>
</div>

基本上我需要做的是计算id“l65”的数量。或者另一个id,无关紧要,每次添加新订单时都会使用它们。

最简单的方法是什么?我需要在var中使用这个数字,以便我可以根据该数字执行函数。

3 个答案:

答案 0 :(得分:3)

这是你如何做到这一点它与exect id不匹配,但id以l61

开头
 $('[id^=l61]').length

答案 1 :(得分:0)

最简单的技巧:

   $("label[id^=l65]").length  // will directly give you the count

传统:

 $("label").each(function() {
       var totalId = countId(this.id);
       console.log(this.id + " : "+totalId); // this will alert l65 : count of 165
    });

可重复使用的功能:传递id为165

function countId(id) {
   var counter = 0;
   $("label").each(function() {
     if(this.id==id) {
        counter+=1;
      } 
   });
}

答案 2 :(得分:0)

试试这个:

<强> HTML:

<div id="orderlist">
<label id="l61">05/19/2014 08:57:34</label>
<label id="l62">0.00066000</label>
<label id="l63">Buy</label>
<label id="l64">6</label>
<label id="l64">6</label>
<label id="l62">0.00396000</label>
<label id="l65" onclick="cancelOrder(346046);">Cancel</label>
<div id="b1"></div>
<label id="l61">05/19/2014 03:08:35</label>
<label id="l62">0.00078000</label>
<label id="l63">Sell</label>
<label id="l64">2</label>
<label id="l64">1</label>
<label id="l62">0.00078000</label>
<label id="l65" onclick="cancelOrder(38493);">Cancel</label>
<div id="b1"></div>
<label id="l61">05/19/2014 03:12:08</label>
<label id="l62">0.00076000</label>
<label id="l63">Sell</label>
<label id="l64">14</label>
<label id="l64">14</label>
<label id="l62">0.01064000</label>
<label id="l65" onclick="cancelOrder(38495);">Cancel</label>
<div id="b1"></div>
<label id="l61">05/19/2014 03:13:49</label>
<label id="l62">0.00077000</label>
<label id="l63">Sell</label>
<label id="l64">15</label>
<label id="l64">15</label>
<label id="l62">0.01155000</label>
<label id="l65" onclick="cancelOrder(38497);">Cancel</label>
<div id="b1"></div> </div>
</div>

<强> JS:

$(function(){
    var i=0;
    $("label").each(function(){
        if($(this).attr("id") == "l65")
          i++;
    });
    console.log(i);
});

fiddle

此示例计算id等于lbl65的所有标签。