jQuery找到最高的父TD

Zak*_*Zak 11 html javascript jquery

我正在处理表中包含的表单的代码.我正在编写(使用jQuery)一个函数来突出显示<td>每个<input>元素的父元素.那部分很简单 - 代码只是:

$('.myForm input').click(function(){
    $(this).parent().addClass('active');
    })
Run Code Online (Sandbox Code Playgroud)

更复杂的部分是一些文本字段位于嵌套在<td>第一个表的第二个表中.它看起来像:

<table>
    <tr>
        <td> <--cell I want to add the class to
            <table>
                <tr>
                    <td><input type='text'></td>
                </tr>
            </table>
        </td>
     </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:有没有办法使用jQuery的一个语句找出最高父方式<td>的的<input>元素吗?换句话说,我可以结合:

$('.myForm input').click(function(){
    $(this).parent().addClass('active');
    })
Run Code Online (Sandbox Code Playgroud)

$('.myForm input').click(function(){
    $(this).parent().parent().addClass('active');
    })
Run Code Online (Sandbox Code Playgroud)

成一个功能?

lon*_*day 20

最好的解决方案是在实际想要定位的表中添加一个类.这意味着您可以在将来更新标记,而不必通过执行类似操作来破坏JS $(this).closest('.targetElement').addClass('active').

如果你不能这样做,你可以使用parents('td').last().这将选择所有td父元素,然后获取最后一个元素.

$('.myForm input').click(function(){
    $(this).parents('td').last().addClass('active');
})
Run Code Online (Sandbox Code Playgroud)

请参阅jQuery手册: