elements / document.documentElement - 2 Fragen hierzu
Dirk
- javascript
Hy,
ich habe zwei Fragen allgemeiner Natur.
Beide Fragen haben nichts direkt miteinander zu tun - abgesehen davon, dass ich eine Antwort darauf suche ....
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
Oder ?
2.)
In welchem Zusammenhang benutzt man die Eigenschaft "documentElement"
(document.documentElement) ? Sie soll das Wurzelelement eines Dokumentes ansprechen ... :-/
Gibt es nicht eine einfache, anschauliche und nützliche Beispielfunktion, die die Verwendung dieser Eigenschaft demonstriert bzw. veranschaulicht ?
Mit besten Grüßen
Dirk
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
Hi,
documentElement kennt MSIE ab Version 6 (und dann nur im standardkonformen Rendermodus, Stichwort »DOCTYPE switch«)
Na, dann erstelle mal eine Seite test.htm mit folgendem Inhalt
<script type="text/javascript" language="JavaScript">
alert(document.documentElement.offsetHeight);
</script>
und starte sie im IE 5.5 ... 8-)
Gruß, Cybaer
Hallo,
documentElement kennt MSIE ab Version 6 (und dann nur im standardkonformen Rendermodus, Stichwort »DOCTYPE switch«)
Na, dann erstelle mal eine Seite test.htm mit folgendem Inhalt
<script type="text/javascript" language="JavaScript">
alert(document.documentElement.offsetHeight);
</script>und starte sie im IE 5.5 ... 8-)
Was willst du mir damit sagen - dass IE 5.5 es auch kann? Ich habe keinen IE 5.5 zur Verfügung.
Mathias
Hi,
Was willst du mir damit sagen - dass IE 5.5 es auch kann?
Ja.
Außerdem müßte es beim 6er nicht nur im Standard, sondern auch im Quirksmode funktionieren.
Gruß, Cybaer