Зависит от того, что вы хотите вернуть.Проще начать с узла и идти к корню, чем наоборот.
function descent(who, ret){
var A= [];
while(who.parentNode){
A[A.length]= ret? who: who.nodeName;
who= who.parentNode;
}
return A.reverse();
}
/ *
test
var what= document.getElementById('funblurb1')
descent(what)>>
HTML,BODY,DIV,DIV
descent(what,1)>>
[object HTMLHtmlElement],[object HTMLBodyElement],
[object HTMLDivElement],[object HTMLDivElement]
* /