function getDef(element, def) { var str = "" var childs = element.childNodes for (var i = 0; i < childs.length; ++i) { if (childs[i].nodeType != 3) { str += childs[i].nodeName + " " + def + "<br />" str += getDef(childs[i], def + 1) } } return str } // Example document.body.innerHTML = getDef(document.body, 0)