遍历dom从具有id和class的单​​击元素中获取

时间:2018-10-19 22:48:07

标签: javascript html dom path breadcrumbs

我发现了有关遍历dom的信息,该信息是从单击的元素中获取节点的...

Traversing up the DOM getting the node from a clicked element

谁能帮助我在面包屑中包括id =和class =属性,就像您在大多数错误调查者中看到的那样?

所以而不是:

HTML  > BODY  > UL  > LI  > SPAN

我想要:

HTML  > BODY  > UL.menu  > LI  > SPAN#whatever

...或类似的东西。

1 个答案:

答案 0 :(得分:1)

除了添加到linked code之外,下面的代码将在元素上附加所有ID和类。

点击元素<div id="id1" class="class1 class2">Test</div> ...

将输出 HTML> BODY> DIV#id1.class1.class2

function clickHandler(event) {
    var target = event.target,
    breadcrumb = [];

    while (target) {
        var id = target.id;
        var classes = target.className;
        var crumb = target.tagName;
        if (id) { 
            crumb += "#" + id; 
        }
        if (classes) {
            var classList = classes.split(' ');
            for (var c = 0; c < classList.length; c++) {
                crumb += "." + classList[c];
            }
        }
        breadcrumb.unshift(crumb);
        target = target.parentElement;
    }
    console.log(breadcrumb.join(" > "));
}

document.addEventListener('click', clickHandler, false);