计算此tbody中的总行数

时间:2015-02-12 12:07:10

标签: javascript jquery count html-table rows

我一直在尝试计算嵌套tbody中tr的总数,但我无法获得总数。我试图使用以下jQuery代码来获取它,但它返回了一个很大的数字,如44行,因为我期望它返回7行。

你能否告诉我哪里出错了?

var count = $("#rbe_viewTab0 table tbody tr td table tbody tr").length;
alert(count);
<div id="rbe_viewTab0" class="nothing" style="display:block;margin-top:0px" isloaded="Y">
    <table class="wide" cellspacing="0" cellpadding="10" border="0">
        <tbody>
            <tr>
                <td>
                    <table class="wide" cellspacing="0" cellpadding="10" border="0">
                        <tbody>
                            <tr></tr>
                            <tr>
                              <td id="xyz">Row 2</td>
                            </tr>
                            <tr></tr>
                            <tr></tr>
                            <tr></tr>
                            <tr></tr>
                            <tr></tr>
                        </tbody>
                    </table>
                </td>
            </tr>
        </tbody>
    </table>
</div>

我希望它为行总数返回7行,并为行2返回索引。

3 个答案:

答案 0 :(得分:1)

尝试

var count = $("#rbe_viewTab0 > table > tbody > tr > td > table > tbody > tr").length; alert(count);

答案 1 :(得分:1)

我认为你的选择器可能是错的。这是一个片段。

var count = $("#rbe_viewTab0 > tbody > tr > td > table.wide > tbody > tr").length;
var index = $("#rbe_viewTab0 > tbody > tr > td > table.wide > tbody > tr > td#xyz").parent().index();
alert(count);
alert(index);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<table id="rbe_viewTab0">
  <tr>
    <td>
      <table class="wide">
        <tr>
          <td>Row 1</td>
        </tr>
        <tr>
          <td id="xyz">Row 2</td>
        </tr>
        <tr>
          <td>Row 3</td>
        </tr>
        <tr>
          <td>Row 4</td>
        </tr>
        <tr>
          <td>Row 5</td>
        </tr>
        <tr>
          <td>Row 6</td>
        </tr>
      </table>
    </td>
  </tr>
</table>

修改 这是索引的选择器。还更新了我的代码段。

var index = $("#rbe_viewTab0 > tbody > tr > td > table.wide > tbody > tr > td#xyz").parent().index();

答案 2 :(得分:0)

$('tbody tbody tr').length会这样做。

e.g。 http://jsbin.com/bacosijina/1/edit?html,output

修改:现在,您已更新了问题: $('table table tr').length会这样做。即表中包含的行

修改编辑:好的,问题中的标记再次发生了变化。也许你想和$('#rbe_viewTab0 tbody tbody tr').length

一起去

e.g。 http://jsbin.com/suxolo/1/edit?html,output