以角度穿越祖先

时间:2014-03-25 15:27:33

标签: javascript angularjs

我正在尝试确定给定的Angular元素是否是目标Angular元素的祖先:

function isAncestor(element, target) {
    for (var parent = target.parent();
         parent && parent !== element;
         parent = parent.parent()) {
        console.log(parent);
    }
    return parent;
}

这进入了一个无限循环。显然,parent永远不会null,因为此代码假定。并且相等比较是不正确的,因为它检查对象引用。

我如何在Angular中执行此操作?

1 个答案:

答案 0 :(得分:0)

这是我的解决方案:

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

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