6
我觉得这应该是一个简单的问题,但可惜我发现自己卡住了。我想要做的是设置一种方式,以便每次单击表格(或任何位置)上的单元格时,它会显示每个元素的parentNode,实质上遍历DOM树。我想我会需要使用elem.parentNode,但我被困在遍历部分。任何在那里可以帮助我的大师,这将不胜感激。遍历DOM树显示有关父节点的信息
我觉得这应该是一个简单的问题,但可惜我发现自己卡住了。我想要做的是设置一种方式,以便每次单击表格(或任何位置)上的单元格时,它会显示每个元素的parentNode,实质上遍历DOM树。我想我会需要使用elem.parentNode,但我被困在遍历部分。任何在那里可以帮助我的大师,这将不胜感激。遍历DOM树显示有关父节点的信息
var element; //your clicked element
while(element.parentNode) {
//display, log or do what you want with element
element = element.parentNode;
}
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;
}
};
我认为,直到今天该事件的属性,如`currentTarget`和`在IE target`无法获得。看起来他们只是在IE中有堂兄弟,就像其他各种属性一样。感谢您的洞察力。 – 2011-01-31 18:15:25
+1并且在达到10k时做得很好 – qwertymk 2011-01-31 18:28:48