获取某个元素的父 td 直接位于具有特定 class 的 tr 之下

Get an element's parent td that is directly below a tr with a certain class

我在网页中有一个复杂的 table 结构,如下所示。 tables 可能有更深的嵌套。

我正在尝试找到一个 jQuery 选择器来找到最接近给定输入元素的 td,并增加了此 td 的 tr 应该具有 [=37] 的 class 的约束=].

问题:如何在 jQuery 的帮助下获得我在上一段中描述的单个“td”?我尝试了一些代码但没有成功。

例如,如果给定的输入元素是 firstname,那么紧邻该元素的 td 将不是我正在寻找的元素,而是带有注释 [=15= 的 td ] 是正确的 td.

我曾尝试跟随选择器获取此 td 但它返回 6 td DOM 元素,而我只期望一个。您可以在 url 中查看此代码的运行情况:demo for this scenario

我试过的代码,但它不起作用

$('#firstName').parents("tr.class1").find("td");

Html 嵌套 tables

<table>
   <tr class='class1'>
      <td>
         <!--some content here-->
      </td>
      <td><!--this is the td I am trying to get-->
         <table>
            <tr>
               <td>
                  First Name 
               </td>
               <td>
                  <input type='text' id='firstname'>  
               </td>
            </tr>
            <tr>
               <td>
                  Last Name 
               </td>
               <td>
                  <input type='text' id='lastname'>
               </td>
            </tr>
         </table>
      </td>
   </tr>
</table>

要实现您的要求,您需要将 closest() 与直接子选择器 > 一起使用,以获得父 td。试试这个:

var $td = $('#firstname').closest('.class1 > td');

Example fiddle