使用jQuery获取具有特定类名的对象的"祖先"的可靠方法

Mat*_*wdy 1 javascript jquery

我有一个javascript函数,可以在select表单元素的change事件中调用.因此,js中的"this"变量指的是select元素.

此select元素位于tr标记的td标记中.tr标签的类名为"FilterDetailsRow".

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

var filterRow = $(this).parent().parent();
Run Code Online (Sandbox Code Playgroud)

它让我得到了我想要的东西.然而,是否有一种更好的方式来告诉jQuery,"从"开始"这个"你可以请你的父母树,直到找到一个类名为"FilterDetailsRow"的人吗?

这是我想出来的,但我想确保我不重新发明轮子.

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

谢谢你的建议.

Luk*_*keH 5

您可以closest用来查找第一个匹配的祖先:

var filterRow = $(this).closest('.FilterDetailsRow');
Run Code Online (Sandbox Code Playgroud)