遍历DOM树以显示有关parentNode的信息

时间:2011-01-31 18:03:51

标签: javascript

我觉得这应该是一个简单的问题,但是我发现自己陷入了困境。我要做的是设置一种方式,以便每次单击表(或任何地方)上的单元格时,它会显示每个元素的parentNode,基本上遍历DOM树。我想我需要使用elem.parentNode,但我被困在遍历部分。任何可以帮助我的大师都会非常感激。

2 个答案:

答案 0 :(得分:10)

var element; //your clicked element
while(element.parentNode) {
    //display, log or do what you want with element
    element = element.parentNode;
}

答案 1 :(得分:3)

var tables = document.getElementsByTagName('table');
for (var i=0,len=tables.length;i<len;++i){
  tables[i].onclick = function(evt){
    if (!evt) evt = window.event;
    var element = evt.target || evt.srcElement;
    while (element){
      console.log(element);
      element = element.parentNode;
    }
  };
}

如果您真的想在任何地方点击任何元素,那么只需:

document.body.onclick = function(evt){
  if (!evt) evt = window.event;
  var element = evt.target || evt.srcElement;
  while (element){
    console.log(element);
    element = element.parentNode;
  }
};