使用jQuery标识表元素中的所有行

时间:2009-10-15 20:35:53

标签: jquery html-table

我正在尝试从表的<tbody>部分中检索所有行,但我不确定这样做的语法。我在下面添加了一个虚拟表提取,以及我使用jQuery实现任务的最新尝试!

表格摘录

<tbody>
 <tr>
  <th id="emergency" colspan="2">Emergency</th>
 </tr>
    <tr>
      <td>Emergency data</td>
      <td>Emergency data</td>
    </tr>
    <tr>
      <td>Emergency data</td>
      <td>Emergency data</td>
    </tr>
</tbody>
<tbody> 
 <tr>
  <th id="urgent" colspan="2">Urgent</th>
 </tr>
    <tr>
      <td>Urgent Data</td>
      <td>Urgent Data</td>
    </tr>
    <tr>
      <td>Urgent Data</td>
      <td>Urgent Data</td>
    </tr>
 </tbody>

jQuery代码:

var emergencyRows = $table.find('#emergency').children().get();

6 个答案:

答案 0 :(得分:11)

如果您知道表格ID,则可以使用以下内容。

var trs = $("#tableid").find("tbody>tr");

答案 1 :(得分:8)

我的建议是将ID属性放在tbody而不是每一行的第一行。

<强> HTML

<table>
    <tbody id="emergency">
        <tr>
            <th colspan="2">Emergency</th>
        </tr>
        <tr>
            <td>Emergency data</td>
            <td>Emergency data</td>
        </tr>
        <tr>
            <td>Emergency data</td>
            <td>Emergency data</td>
        </tr>
    </tbody>
    <tbody id="urgent">
        <tr>
            <th colspan="2">Urgent</th>
        </tr>
        <tr>
            <td>Urgent Data</td>
            <td>Urgent Data</td>
        </tr>
        <tr>
            <td>Urgent Data</td>
            <td>Urgent Data</td>
        </tr>
    </tbody>
</table>

<强>的jQuery

var emergencyRows = $("tbody#emergency").find("tr:gt(0)");
var urgentRows = $("tbody#urgent").find("tr:gt(0)"); 

jQuery代码段将获取除第一行之外的所有相应行。

答案 2 :(得分:4)

这可能是最干净的

$('#emergency').closest('tbody').children(); //only returns first child element, so the <tr>'s

答案 3 :(得分:3)

从您的示例中,您似乎可能想要“除了包含#emergency的行之外的所有行”。如果是这种情况,您可以使用以下内容:

$('#emergency').closest('tr').siblings();

请注意,#emergency不一定是<tr /><th />或其他任何内容。它可以是表格单元格中的任何元素。

答案 4 :(得分:2)

尝试:

var emergencyRows = $("th#emergency").parent().parent().find("tr:gt(0)");

应该可以获得所有不是标题行的行。

答案 5 :(得分:1)

我能够找到一个解决方案来获取分页页面中的所有记录。您也可以试试这个。

var userList = $("#user-grid").dataTable().fnGetNodes();