Javascript 横穿祖先

Javascript 横穿祖先,javascript,angularjs,Javascript,Angularjs,我试图确定给定的角度元素是否是目标角度元素的祖先: function isAncestor(element, target) { for (var parent = target.parent(); parent && parent !== element; parent = parent.parent()) { console.log(parent); } return parent; } 这将进入一

我试图确定给定的角度元素是否是目标角度元素的祖先:

function isAncestor(element, target) {
    for (var parent = target.parent();
         parent && parent !== element;
         parent = parent.parent()) {
        console.log(parent);
    }
    return parent;
}
这将进入一个无限循环。显然,
parent
从来不像此代码假定的那样是
null
。相等比较是不正确的,因为它检查对象引用

如何在角度上做到这一点?

以下是我的解决方案:

function isAncestor(element, target) {
    var parent = target;

    while (parent.length > 0) {
        if (parent[0] === element[0]) {
            return parent;
        }
        parent = parent.parent();
    }
    return null;
}