我有一个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;
}
}
感谢您的任何建议。
答案 0 :(得分:5)
您可以使用closest
查找第一个匹配的祖先:
var filterRow = $(this).closest('.FilterDetailsRow');
答案 1 :(得分:1)
在jQuery 1.4中,您可以使用parentsUntil。对你来说就像是
$(this).parentsUntil('.FilterDetailsRow');