jQuery的:首先和:最后一个元素的第一个子元素

Ale*_*lec 2 jquery

我有一些简单的表(多个,所有与class ="parent")有多<tr> 行.<td>这些行中的单元格具有自己的表格.我想针对<tr>该行第一(父)表,如下所示:

HTML:

<table class="parent"> 
  <tr> <-- match with :first 
    <td> 
      <table> 
        <tr><td></td></tr> 
        <tr><td></td></tr> 
      </table> 
    </td> 
  </tr> 
  <tr> <-- match with :last 
    <td> 
      <table> <-- so ignore this child ..
        <tr><td></td></tr> 
        <tr><td></td></tr> <-- .. and do NOT match this <tr> with :last 
      </table> 
    </td> 
  </tr> 
</table>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$('table.parent').each(function() { 
  $(this).find('tr:first').dostuff(); 
  $(this).find('tr:last').dostuff(); 
});
Run Code Online (Sandbox Code Playgroud)

:first <tr>精品工程,因为这永远是<tr>父母的.但是当我尝试选择它时:last <tr>,它将匹配<tr>嵌套表的最后一个,而不是<tr>父表的最后一个.我怎么能告诉jQuery只查看<tr>父表中的s,并且不要在可能的子表中进一步搜索?

kar*_*m79 5

我建议稍微修改你的选择器,以确保它适用于附加<tbody>到表(如Firefox和Chrome)的浏览器:

//tested
$('table.parent > tbody').each(function() {
   $(this).children('tr:first').text('hello').css('background-color', 'red');
   $(this).children('tr:last').text('hello').css('background-color', 'red');
});
Run Code Online (Sandbox Code Playgroud)