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

时间:2010-04-16 15:14:58

标签: javascript jquery

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

此select元素位于tr标记的td标记中。 tr标签的类名为“FilterDetailsRow”。

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

var filterRow = $(this).parent().parent();
它让我得到了我想要的东西。但是,有没有更好的方法来告诉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;
    }
}

感谢您的任何建议。

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

在jQuery 1.4中,您可以使用parentsUntil。对你来说就像是

$(this).parentsUntil('.FilterDetailsRow');