简体   繁体   English

如何算数 <tr> 包含在 <tbody> 使用jQuery以及JavaScript?

[英]How to count number of <tr> contained in <tbody> using jQuery as well as javascript?

I've following HTML code of a table: 我遵循表的HTML代码:

<table   id="blacklistgrid"  class="table table-bordered table-hover table-striped">
  <thead>
    <tr>
      <th style="vertical-align:middle" >Pack Of</th>
      <th style="vertical-align:middle">Quantity</th>
      <th style="vertical-align:middle">Volume</th>
      <th style="vertical-align:middle">Unit</th>
      <th style="vertical-align:middle">Rebate Amount</th>
    </tr>
  </thead>
  <tbody class="apnd-test">
    <tr id="Row1">
      <td><input type="text" name="pack[]" value="" class="form-control" size="8"/></td>
      <td><input type="text" name="quantity[]" value="2" class="form-control" size="8"/></td>
      <td><input type="text" name="volume[]" value="750" class="form-control" size="8"/></td>
      <td><input type="text" name="amount[]" value="3.00" class="form-control" size="9"/></td>
    </tr>
    <tr id="Row1">
      <td><input type="text" name="pack[]" value="" class="form-control" size="8"/></td>
      <td><input type="text" name="quantity[]" value="2" class="form-control" size="8"/></td>
      <td><input type="text" name="volume[]" value="750" class="form-control" size="8"/></td>
      <td><input type="text" name="amount[]" value="3.00" class="form-control" size="9"/></td>
    </tr>
    <tr id="Row1">
      <td><input type="text" name="pack[]" value="" class="form-control" size="8"/></td>
      <td><input type="text" name="quantity[]" value="2" class="form-control" size="8"/></td>
      <td><input type="text" name="volume[]" value="750" class="form-control" size="8"/></td>
      <td><input type="text" name="amount[]" value="3.00" class="form-control" size="9"/></td>
    </tr>
    <tr id="Row1">
      <td><input type="text" name="pack[]" value="" class="form-control" size="8"/></td>
      <td><input type="text" name="quantity[]" value="2" class="form-control" size="8"/></td>
      <td><input type="text" name="volume[]" value="750" class="form-control" size="8"/></td>
      <td><input type="text" name="amount[]" value="3.00" class="form-control" size="9"/></td>
    </tr>
  </tbody>
</table>

Now I want to count the number of table rows <tr> contained in table body <tbody> . 现在,我要计算表主体<tbody>包含的表行<tr>的数量。 I don't want to consider the table row <tr> contained in table head <thead> using jQuery as well as javascript. 我不想考虑使用jQuery和javascript的表头<thead>包含的表行<tr> I tried following code in jQuery but it's giving me undefined alert. 我尝试使用jQuery中的以下代码,但它给了我未定义的警报。 So can someone please help me in this regard please? 那么有人可以在这方面帮助我吗? Thanks in advance. 提前致谢。 My non-working jQuery code is as follows: 我无法正常工作的jQuery代码如下:

$( document ).ready(function() {
  var row_no = $('#blacklistgrid tbody tr').length;
  alert(row_no);
});

In pure javascript you can do: 在纯JavaScript中,您可以执行以下操作:

var row_no = document.getElementById('blacklistgrid').rows.length - 1;
alert(row_no);

Or add an id to tbody only: 或仅向tbody添加ID:

var row_no = document.getElementById('blacklistbody').rows.length;

Sorry, I can't comment yet. 抱歉,我无法发表评论。 But your code should work. 但是您的代码应该可以工作。 Here is http://jsfiddle.net/eW5v5/ Are you sure that table exists by the time you run your calculation? 这是http://jsfiddle.net/eW5v5/您确定在运行计算时该表已经存在吗?

$( document ).ready(function(){
})

Even though you are waiting until DOM is created, there might be something else going on that creates it after. 即使您正在等待创建DOM,但之后可能还会有其他事情创建它。

Yes, and with vanilla JS you can do it like: 是的,使用香草JS,您可以像这样:

  var row_no = document.querySelectorAll('tbody tr').length;
  // or for older browsers:
  // var row_no = document.getElementById('blacklistgrid').getElementsByTagName('tbody')[0].getElementsByTagName('tr').length;
  alert(row_no);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM