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

Traversing up the dom getting the from a clicked element with id and class

我找到了有关遍历 dom 从单击的元素获取节点的重要信息...

Traversing up the DOM getting the node from a clicked element

谁能帮我在面包屑中加入 id= 和 class= 属性,就像您在大多数 bugger 中看到的那样?

所以而不是:

HTML  > BODY  > UL  > LI  > SPAN

我愿意:

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

...或类似的东西。

添加到 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);