jQuery - 从表中获取行

时间:2009-12-16 23:49:23

标签: jquery css-selectors

这个标题可能有点误导,因为它并不像听起来那么简单。我有一个页面,其中有两个表(每行有50行)并排显示,以便行彼此对齐。我面临的问题是每个表中行的默认高度是相同的,但第二个表中的occaisionally动态内容导致特定行高于其他行。

“不是问题!”,我对自己说。 “当页面加载时我会在第二个表格中获得行的高度,然后在第一个表格中设置相同行的高度以匹配它!”这就是我的问题所在。我似乎无法获得每个表中的行数以便与progaically匹配。没有它,我不知道如何更改第一个表中正确行的高度。我认为可能是由于第二个表格中的单元格内容。许多单元格实际上包含自己的表(和表行),因此我的jQuery选择器获取所有行,而不仅仅是父行。

以下是我被迫使用的标记的快速示例:

<div id="mainTable">
  <div id="randomServerGeneratedNumbers" rel="MainTable">
    <htmldb:randomNumbers>
      <table id="moreRandomNumbers">
        <tbody>
          <tr></tr> <!--THESE ARE THE ROWS I WANT!!!!-->
          <tr>
            <td>
              <table>
                <tr></tr> <!--IGNORE THESE!!!-->
              </table>
            </td>
          </tr>
          <tr></tr>
        </tbody>
        <tfoot></tfoot>
      </table>
    </htmldb>
  </div>
</div>

这是我的jQuery选择器,几乎可以工作:

$('#mainTable').find('div[rel=mainTable] tbody tr:gt(0)');

2 个答案:

答案 0 :(得分:2)

您想使用子选择器:A > B。以下jQuery代码将选择<tbody />中找到的第一个表中<div rel="MainTable" />元素的所有直接子行:

$('div[rel=MainTable] table:first > tbody > tr')

有关详情,请参阅jQuery documentation

答案 1 :(得分:0)

我会给父表行一个特定的类。然后您可以通过类名访问它们:

<div id="mainTable">
<div id="randomServerGeneratedNumbers" rel="MainTable">
<htmldb:randomNumbers>
  <table id="moreRandomNumbers">
    <tbody>
      <tr class="row"></tr> <!--THESE ARE THE ROWS I WANT!!!!-->
      <tr class="row">
        <td>
          <table>
            <tr></tr> <!--IGNORE THESE!!!-->
          </table>
        </td>
      </tr>
      <tr class="row"></tr>
     </tbody>
     <tfoot></tfoot>
     </table>
     </htmldb>
  </div>

并选择如下:

$('table#moreRandomNumbers .row');