javascript - 使用 jQuery 获取具有特定类名的对象的 "ancestor"的可靠方法

标签 javascript jquery

我有一个 javascript 函数,它在选择表单元素的更改事件时被调用。所以,js中的this变量就是指select元素。

这个 select 元素在一个 td 标签中,在一个 tr 标签中。 tr 标签的类名是“FilterDetailsRow”。

现在,我已经测试过,如果我使用这个语法:

var filterRow = $(this).parent().parent();

它让我得到我想要的。但是,有没有更好的方法来告诉 jQuery,“从“this”开始,你能不能请你沿着我的父树向上爬,直到找到类名为“FilterDetailsRow”的父树?

这是我的想法,但我想确保我不是在重新发明轮子。

function GetFilterDetailsRowOfObject(o) {
    if (o) {
        if (o.parent()[0].className.indexOf("FilterDetailsRow") != -1)
            return o;
        else
            return GetFilterDetailsRowOfObject(o.parent());
    } else {
        return null;
    }
}

感谢您的任何建议。

最佳答案

您可以使用 closest找到第一个匹配的祖先:

var filterRow = $(this).closest('.FilterDetailsRow');

关于javascript - 使用 jQuery 获取具有特定类名的对象的 "ancestor"的可靠方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2654067/

相关文章:

JavaScript - 从动态键/值获取值到动态键/值

javascript - jQuery mobile + iScroll,无法向下滚动

javascript - 导航子菜单从顶部推送

javascript - 在整个网站上连续运行 jQuery 动画

javascript - 在 react 中单击 anchor 标记后,组件将卸载而不会被调用

javascript - ChatRooms 中的 ExecJS::RuntimeError#show

javascript - html 文档之间的多向滚动

javascript - 在 Visualforce 页面中禁用依赖选项列表

javascript - 键值配对数组元素在给定索引 JavaScript 中分配值时返回 "undefined"错误

javascript - 大量日期输入项的 Bootstrap Datepicker 性能问题