Dirk: elements / document.documentElement - 2 Fragen hierzu

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

  1. 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

    1. Herzlichen Dank :-)

    2. 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

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. 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

        1. 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

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!