使用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');