molily: elements / document.documentElement - 2 Fragen hierzu

Beitrag lesen

Hallo,

1.) Wann verwende ich in Formularen "elements", bzw. wann MUSS ich "elements" benutzen ?

document.formularname.elements[0].value
ergibt doch dasselbe wie
document.formularname[0].value
oder wie
document.formularname.elements[textfeldname].value
oder wie
document.formularname[textfeldname].value

Im Prinzip sind die Varianten äquivalent und erzielen schon ab Netscape 2 dieselben Resultate. Wenn du so anfängst, könntest du auch fragen, ob document.formularname, document.forms[0] oder document.forms['formularname'] für den Zugriff auf das Formular am besten ist. Auch in dem Fall sind die Varianten praktisch äquivalent, forms['formularname'] funktioniert allerdings »erst« ab Netscape 3. Du kannst dich höchstens daran orientieren, dass die Syntax document.forms['formularname'].elements['elementname'] bzw. document.forms[0].elements[0] durch DOM 1/2 HTML normiert ist, wie ich unter </archiv/2003/12/66415/#m379197> erläutert habe.

DOM-konform im engeren Sinne sind auch document.forms.namedItem('formularname').namedItem('eingabefeldname').value und document.forms.item(0).elements.item(0).value sowie Mischformen, welche allerdings erst in modernen Browsern funktionieren (Mozilla spätestens ab M16, Opera ab 7, MSIE ab 5 meines Wissens).

Ich würde auf Formulare immer über den Formularnamen zugreifen, das ist sehr robust, wenn sich die Formularreihenfolge eines Tages ändert. Es erzeugt auch verständlicheren Code, document.forms['kontaktformular'] usw. ist eindeutiger als document.forms[0] usw. (»Grmbl, welches Formular war gleich noch das erste?«).

2.)

In welchem Zusammenhang benutzt man die Eigenschaft "documentElement"
(document.documentElement) ? Sie soll das Wurzelelement eines Dokumentes ansprechen ... :-/

In (X)HTML ist das das Wurzelelement das html-Element. Es gibt zahlreiche Situationen, in denen man den html-Elementknoten ansprechen will.

Gibt es nicht eine einfache, anschauliche und nützliche Beispielfunktion, die die Verwendung dieser Eigenschaft demonstriert bzw. veranschaulicht ?

Bei <html lang="de">...</html> z.B. window.alert('Sprache des Dokuments: '+document.documentElement.lang);
documentElement kennt MSIE ab Version 6 (und dann nur im standardkonformen Rendermodus, Stichwort »DOCTYPE switch«), Opera ab 7, Mozilla spätestens am M16.

Mathias