Javascript 仅使用JS在页面中的任意位置单击时需要打印Dom路径

Javascript 仅使用JS在页面中的任意位置单击时需要打印Dom路径,javascript,Javascript,当我们单击html页面中的任意位置时,需要按顺序打印所有parentnodes节点名。例如,如果我点击了某个地方(在html页面内)的段落。我需要输出为HTML>Body>Div>p>(单击) 为此,我只需要使用简单的javascript。我尝试了下面的代码。但我找不到答案。帮我找到 script.js document.body.onclick = function(e){ var x= e.parentNode.nodeName; console.log(x); }; let els=

当我们单击html页面中的任意位置时,需要按顺序打印所有parentnodes节点名。例如,如果我点击了某个地方(在html页面内)的段落。我需要输出为HTML>Body>Div>p>(单击) 为此,我只需要使用简单的javascript。我尝试了下面的代码。但我找不到答案。帮我找到

script.js

document.body.onclick = function(e){
var x= e.parentNode.nodeName;
console.log(x); 
};
let els=document.getElementsByTagName('*'))
让节点=[]
for(设i=0;i
一旦您有了事件目标,您只需爬上
父节点
树,在标记名前面加上前缀,例如

window.onload=function(){
document.body.addEventListener('click',单击节点);
}
功能节点(e){
var节点=e.target;
var祖先=node.tagName;
while(node.parentNode&&node.parentNode.tagName){
node=node.parentNode;
祖先=node.tagName+'>'+祖先;
}
console.log(祖先);
}
点击这里
还是在这里

还是在这里

  • 还是在这里
let els = document.getElementsByTagName('*')
let nodes = []

for (let i = 0; i < els.length; i++) {
  els[i].addEventListener('click', function() {
    event.stopPropagation();
    let element = this
    nodes = []
    while (element.nodeName !== 'HTML') {

      // Add element to nodes
      nodes.push(element)

      // Set element equal to parent element
      element = element.parentNode
    }
  })
}