javascript - 获取 div 在层次结构中的位置

标签 javascript dom html traversal

我正在使用 JavaScript,我需要在给定整个 DOM 树的情况下找到 div 的位置。当给定同一棵树时,我需要最终知道从根开始的遍历将使我们到达我们正在查看的 div。请随时提出后续问题。

干杯。

最佳答案

这可能会让您走上正轨。我不能 100% 确定 getAttribute 的浏览器覆盖率,因此如果需要,请在目标浏览器上进行测试。

getNodeAndParent = function(o) {
    var nodeTarget,strParents,strNodeName,strNodeId,strNodeClass,strReturnValue;
    if (o.constructor === String) {
        nodeTarget = document.getElementById(o);
        if (nodeTarget === undefined) {
            throw "You must specify a valid node ID";
        }
    }
    else {
        nodeTarget = o;
    }
    strNodeName = nodeTarget.nodeName
    strNodeId = nodeTarget.getAttribute('id');
    strNodeClass = nodeTarget.className;
    strReturnValue = strNodeName + (strNodeId ? '#' + strNodeId : '') + (strNodeClass ? '.' + strNodeClass : '');
    if (strNodeName.toLowerCase() !== 'html') {
        strReturnValue = getNodeAndParent(nodeTarget.parentNode) + ' > ' + strReturnValue;
    }

    return strReturnValue;
}

//Example:
getNodeAndParent('prettify-lang');

如果在 Firebug 中针对这个问题页面运行它,你会得到 "HTML > BODY.question-page > DIV.container > DIV#content > DIV#pretify-lang"

关于javascript - 获取 div 在层次结构中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5201544/

相关文章:

javascript - Aurelia:在 repeat.for 中计算/观察

javascript - jquery xml解析查找具有特定属性的节点而不循环

php - 在php/regex中解析表内容并通过td获取结果

javascript - 覆盖元素中的 JavaScript/HTML/CSS/etc... 文件

javascript - 我想用一个按钮更改文本

javascript - 在 Indesign 框架内操作图像

Javascript:如何在每个帖子或内容部分内的第二个通用 "div"标签(没有 ID 或类)之后添加 "p"元素?

javascript - 等待 ES6 模块中的文档准备就绪

php - 如何禁用聊天脚本中的 Html 代码

javascript - 延迟键盘关闭 react native