Abgesehen davon, dass ich „auf das übergeordnete <form> zuzugreifen“ hier eher so verstanden habe, dass das Script-Element ein Nachfahre des Formulars sein soll, und deshalb nicht die previousSiblings, sondern parentNodes zu betrachten wären: Ich werde wohl nie verstehen, warum manche Leute für sowas Rekursion bemühen, wenn's doch auch eine einfache while-Schleife tut, und man sich den Stack-Overhead damit sparen kann.
Stimmt. Kann sein, dass ich in letzter Zeit zuviele closures gebaut habe, dass ich geglaubt habe nicht mehr damit auszukommen ;-)
Das kann ich natürlich nicht so stehen lassen:
function parentElement(name) {
var script = document.getElementsByTagName('script');
var me = script[script.length-1];
name = name.toLowerCase();
var node = me.parentNode;
while(node) {
var n = node.nodeName.toLowerCase();
if(n == name) return node;
node = node.parentNode;
}
return null;
}
var form = parentElement('form');
alert(form);
Struppi.