计算父节点

Counting parent nodes

本文关键字:父节点 计算      更新时间:2023-09-26

ECMAScript中是否有DOM元素的原生方法,允许计算给定元素的所有祖先(直到由Id,Name等指定的窗口对象或DOM元素)?

的示例用法是检查给定元素的所有祖先,并删除指定的属性。

有一个节点迭代器(https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator)可以用于此目的

您可以使用xpath:

document.evaluate('ancestor::*', x, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null)

我编写了一个简单的函数,执行问题中描述的操作。它获取给定元素的所有祖先元素,并从"开始"answers"结束"元素之间的每个元素中删除给定属性(它不会对"结束"元素执行removeAttribute方法)。

   var modifyAncestors = function(startingelementid,endingelementId,searchedattribute) {
        var nodecount = document.getElementById(endingelementId).childNodes.length;
        console.log(nodecount);
        var currentid = startingelementid;
        console.log(currentid);
        console.log(searchedattribute); 
        for(var i = 0; i < nodecount; i++) {
            if(currentid == endingelementId) {
            break;
            }
            else {
            document.getElementById(currentid).removeAttribute(searchedattribute);
            currentid = document.getElementById(currentid).parentNode.id;   
            }
        }               
    }

工作示例:http://www.blacktieseo.com/so/js/test.html(无法与Fiddle JS一起工作)。