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

我有一个javascript函数,可以在select表单元素的change事件中调用。 因此,js中的“this”变量指的是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; } } 

谢谢你的建议。

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

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

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

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