选择特定标签的最后一个后代

时间:2014-08-06 17:04:13

标签: jquery

我有一张桌子,分成如下:

<table id="myTable">
 <thead>
  <tr>
   <th></th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td></td>
  </tr>
  <tr>
   <td></td>
  </tr>
  <!-- unknown number of rows -->
 </tbody>
</table>

我需要选择此表中的最后一个<tr>。我试过了$('#myTable > td:last'),但这似乎并不奏效。当我console.log($('#myTable > tr:last').html())时,我得到undefined

2 个答案:

答案 0 :(得分:1)

您对$('#myTable > tr:last')有正确的想法,但表格实际上还包含<tbody>标记...如果您不在自己中添加一个标签,那么浏览器会为您提供。所以你需要改为使用它:

$('#myTable tr:last')

不要使用>选择器,因为这要求后面的元素必须是前一个元素的 direct 子元素。

此外,$('#myTable > td:last')肯定是不正确的,因为<td>元素永远不是<table>元素的直接子元素 - 它位于<tr>内部,转弯位于<tbody><thead>

答案 1 :(得分:1)

>从父级中选择一个直接子元素,因此它不会选择嵌套在td

两个级别的#myTable

请尝试使用此选择器:

$('#myTable tr:last-child td')

或者,如果您想要上一个td

的最后tr
$('#myTable tr:last-child td:last-child')