## all

all: Allgemeines zur Verwendung
HTML-Elemente ansprechen
HTML-Elemente mit Namen ansprechen

### Eigenschaften:

className (Style-Sheet-Klassenname eines Elements)
dataFld (Datenfeld bei Datenanbindung)
dataFormatAs (Datentyp bei Datenanbindung)
dataPageSize (Anzahl Datensätze bei Datenanbindung)
dataSrc (Datenquelle bei Datenanbindung)
id (id-Name eines Elements)
innerHTML (Inhalt eines Elements als HTML)
innerText (Inhalt eines Elements als Text)
isTextEdit (Editierbarkeit eines Elements)
lang (Sprache eines Elements)
language (Scriptsprache für ein Element)
length (Anzahl Elemente)
offsetHeight (Höhe eines Elements)
offsetLeft (Linkswert der linken oberen Elementecke)
offsetParent (Elternelement-Position)
offsetTop (Obenwert der linken oberen Elementecke)
offsetWidth (Breite eines Elements)
outerHTML (Elementinhalt plus äußeres HTML)
outerText (Elementinhalt plus äußerem Text)
parentElement (Elternelement)
parentTextEdit (Editierbarkeit des Elternelements)
recordNumber (Datensatznummer bei Datenanbindung)
sourceIndex (wie vieltes Element)
tagName (HTML-Tag des Elements)
title (Titel des Elements)

### Methoden:

click() (Element anklicken)
contains() (Zeichenkette in Element enthalten)
getAttribute() (Attribut in einem Element ermitteln)
insertAdjacentHTML() (Element einfügen)
insertAdjacentText() (Text einfügen)
removeAttribute() (Attribut aus Element entfernen)
scrollIntoView() (zu Element scrollen)
setAttribute() (Attribut eines Elements einfügen)

## all: Allgemeines zur Verwendung

Das Objekt `all`, das in der JavaScript-Objekthierarchie unterhalb des document-Objekts liegt, ist der Schlüssel zu Dynamischem HTML nach dem Ansatz des MS Internet Explorer ab Version 4.0. Mit Hilfe des `all`-Objekts haben Sie Script-Zugriff auf alle einzelnen Elemente und Inhalte einer HTML-Datei. Die meisten Eigenschaften können Sie lesen und ändern. Methoden des `all`-Objekts erlauben unter anderem das Einfügen oder Entfernen von HTML-Tags und von Angaben innerhalb eines HTML-Tags. Auf diese Weise ist der dynamische Zugriff auf alle Bestandteile einer Datei möglich.

Das `all`-Objekt gehört nicht zum offiziellen JavaScript-Sprachstandard. Es wurde von Microsoft für den MS Internet Explorer 4.0 implementiert. Das `all`-Objekt funktioniert zwar auch prima innerhalb von Scriptbereichen, die mit "JavaScript" ausgezeichnet sind, doch es ist bislang eigentlich nur Bestandteil von JScript, dem Microsoft-Derivat von JavaScript.

Mit den neuen Browser-Generationen und dem Document Object Model (DOM) wird das `all`-Objekt durch die neuen HTML-Elementobjekte und das node-Objekt verdrängt. Es hat also keine Zukunft mehr und sollte allenfalls noch aus Gründen der Rückwärtskompatibilität eingesetzt werden.

Eine zusammenhängende Einführung in das Arbeiten mit dem `all`-Objekt finden Sie im Abschnitt Das ältere DHTML-Modell von Microsoft.

## HTML-Elemente ansprechen

Das `all`-Objekt behandelt alle HTML-Tags, die in einer HTML-Datei notiert sind, als Kette von Elementen. Sie können jedes einzelne HTML-Tag in einer Datei ansprechen:

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">
    <!--
    function Aendern() {
     document.all.tags("h1")[0].innerText = "Anderer Inhalt";
    }
    //-->
    </script>
    </head>
    <body>
    <h1>eine Überschrift</h1>
    <a href="javascript:Aendern()">Aendern</a>
    </body></html>

### Erläuterung:

Das Besipiel enthält eine Überschrift und einen Verweis. Beim Anklicken des Verweises wird die Funktion `Aendern()` aufgerufen. Diese Funktion ändert den Text der Überschrift dynamisch in `"Anderer Inhalt"`.

Um ein bestimmtes HTML-Tag anzusprechen, notieren Sie `document.all.tags`. Dahinter folgt, in runden Klammern und in Anführungszeichen, der Name des HTML-Tags, auf das Sie zugreifen möchten. Im Beispiel soll auf ein `<h1>`-Tag zugegriffen werden, also muss `("h1")` notiert werden. Damit haben Sie eine Art Zwischenobjekt, nämlich eine Kette aus allen `<h1>`-Elementen der Datei. Nun müssen Sie noch angeben, welches Sie meinen. Im Beispiel gibt es zwar nur eine `<h1>`-Überschrift, aber es könnte ja auch mehrere davon geben. Dazu notieren Sie in eckigen Klammern, das wie vielte HTML-Tag vom angegebenen Typ Sie meinen. Beachten Sie, dass der Zähler bei 0 beginnt, d.h. das erste Element sprechen Sie mit `[0]` an, das zweite mit `[1]` usw. Beim Zählen gilt die Reihenfolge, in der die HTML-Tags des ausgewählten Typs in der Datei notiert sind.

Nachdem Sie ein bestimmtes, eindeutiges HTML-Tag angesprochen haben, können Sie dahinter eine der Eigenschaften oder Methoden des `all`-Objekts auf dieses HTML-Tag anwenden.

## HTML-Elemente mit Namen ansprechen

Sie können jedes HTML-Element in einem Script auch mit einem Namen ansprechen. Voraussetzung ist, dass das HTML-Element einen Namen durch die Attribute `id=` bzw. `name=` erhalten hat.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">
    <!--
    function MachPzuH() {
     document.all.MeinElement.outerHTML = "<h1>" +
     document.all["MeinElement"].innerText + "<\/h1>";
    }
    //-->
    </script>
    </head>
    <body>
    <p id="MeinElement">Ein Element mit Text</p>
    <a href="javascript:MachPzuH()">Mach P zu H</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Absatz und einen Verweis. Beim Anklicken des Verweises wird die Funktion `MachPzuH()` aufgerufen. Diese Funktion verwandelt den Absatz dynamisch in eine Überschrift 1. Ordnung.

Um ein HTML-Element mit seinem Namen anzusprechen, müssen Sie im einleitenden Tag des Elements das Attribut `id=` notieren und dahinter einen Namen vergeben. Im Beispiel ist das der Name `"MeinElement"`. Dann können Sie dieses Element mit `document.all.ElementName`, im Beispiel also mit `document.all.MeinElement`, ansprechen.

Alternativ können Sie, wie im zweiten Teil des Beispieles, das Element mit `document.all["MeinElement"]` angesprechen. Über diese Art des Ansprechen eines Elementes können Sie auch Variablen übergeben. Dazu notieren Sie einfach den Variablennamen ohne Anführungszeichen anstatt eines festen Wertes z.B. `document.all[Variablenname]`. Vorraussetzung ist jedoch, dass die Variable auch existiert.

## className

Speichert die Style-Sheet-Klasse, zu der ein Element gehört.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <style type="text/css">
    <!--
    p.normal { color:black }
    p.spezial { color:red }
    -->
    </style>
    </head><body>
    <p class="normal" id="derAbsatz">Text</p>
    <script type="text/javascript">
    <!--
     document.write("<br>Klasse davor: " + document.all.derAbsatz.className);
     document.all.derAbsatz.className = "spezial";
     document.write("<br>Klasse danach: " + document.all.derAbsatz.className);
    //-->
    </script>
    </body></html>

### Erläuterung:

Im Beispiel werden im Dateikopf mit Hilfe von CSS Style-Sheets zwei Klassen für das HTML-Tag <p> definiert: eine Klasse `normal` und eine Klasse `spezial`. Im Dateikörper wird ein Absatz definiert, der zunächst die Klasse `normal` zugewiesen bekommt. In einem Script wird der Klassenname des Absatzes zunächst mit document.write() zur Kontrolle in die Datei geschrieben. Dann wird dem Absatz die andere definierte Klasse zugewiesen. Dabei übernimmt der Absatz auch dynamisch alle Style-Sheet-Eigenschaften der neuen Klasse. Anschließend wird der neue Klassenname zur Kontrolle auch noch mal in die Datei geschrieben.

## dataFld

Speichert den Namen eines Datenfeldes, das zur Ausgabe eines Datensatzes gehört. Dies bezieht sich auf das Konzept der Datenanbindung. Zur Einführung in das Thema lesen Sie den Abschnitt über Datenanbindung (Microsoft).

### Beispiel:

    <tr>
    <td><b>Vorname:</b></td>
    <td><span id="Test" datafld="vorname">
    </span><input type="button" value="Test"
    onClick="alert(document.all.Test.dataFld)">
    </td>
    </tr>

### Erläuterung:

Das Beispiel stellt eine Tabellenzeile dar, in der ein Datenfeld ausgegeben wird (Die übrigen Befehle zur Datenanbindung fehlen hier). Zu Testzwecken ist ein Button eingefügt, bei dessen Anklicken der Name des Datenfeldes mit alert() ausgegeben wird. Es ist der Feldname, der in der HTML-Angabe `datafld=` steht. Wenn Sie den Wert dynamisch ändern, können Sie in der gleichen Tabellenzelle beispielsweise ein anderes Feld ausgeben.

## dataFormatAs

Speichert den Ausgabetyp eines Datenfeldes, das zur Ausgabe eines Datensatzes gehört. Dies bezieht sich auf das Konzept der Datenanbindung. Zur Einführung in das Thema lesen Sie den Abschnitt über Datenanbindung (Microsoft).

### Beispiel:

    <tr>
    <td><b>Vorname:</b></td>
    <td><span id="Test" datafld="vorname" dataformatas="HTML">
    </span><input type="button" value="Test"
    onClick="alert(document.all.Test.dataFormatAs)">
    </td>
    </tr>

### Erläuterung:

Das Beispiel stellt eine Tabellenzeile dar, in der ein Datenfeld ausgegeben wird (Die übrigen Befehle zur Datenanbindung fehlen hier). Zu Testzwecken ist ein Button eingefügt, bei dessen Anklicken der Ausgabetyp des Datenfeldes mit alert() angezeigt wird. Da dieser im Ausgabebereich mit "HTML" festgelegt wurde, wird dieser Wert ausgegeben.

## dataPageSize

Speichert, wie viele Datensätze gleichzeitig ausgegeben werden sollen. Dies bezieht sich auf das Konzept der Datenanbindung. Zur Einführung in das Thema lesen Sie den Abschnitt über Datenanbindung (Microsoft).

### Beispiel:

    <input type="button" value="Test"
    onClick="document.all.Anzeigetabelle.dataPageSize = 5">
    <table id="Anzeigetabelle" datasrc="#Adressen" datapagesize="1">
    ...usw. Daten ...
    </table>

### Erläuterung:

Das Beispiel deutet eine Tabelle an, die zur Ausgabe von Daten aus einer Datenanbindung gedacht ist (Die übrigen Befehle zur Datenanbindung fehlen hier). Da im einleitenden `<table>`-Tag die Angabe `datapagesize="1"` steht, wird in der Tabelle immer nur ein Datensatz gleichzeitig ausgegeben. Zu Testzwecken ist ein Button eingefügt, bei dessen Anklicken sich der Wert auf 5 ändert. Danach werden immer 5 Datensätze gleichzeitig angezeigt.

## dataSrc

Speichert den Verweis auf das `<object>`-Tag, in dem eine Datenanbindung definiert wird. Dies bezieht sich auf das Konzept der Datenanbindung. Zur Einführung in das Thema lesen Sie den Abschnitt über Datenanbindung (Microsoft).

### Beispiel:

    <input type="button" value="Test"
    onClick="alert(document.all.Anzeigetabelle.dataSrc)">
    <table id="Anzeigetabelle" datasrc="#Adressen" datapagesize="1">
    ...usw. Daten ...
    </table>

### Erläuterung:

Das Beispiel deutet eine Tabelle an, die zur Ausgabe von Daten aus einer Datenanbindung gedacht ist (Die übrigen Befehle zur Datenanbindung fehlen hier). Zu Testzwecken ist ein Button eingefügt, bei dessen Anklicken der Verweis auf die Datenquelle ausgegeben wird. Da dieser im Ausgabebereich mit `"#Adressen"` festgelegt wurde, wird dieser Wert ausgegeben. Durch Ändern dieser Objekteigenschaft können Sie dynamisch die Datenquelle wechseln. Voraussetzung ist, dass für den neuen Verweis auf die Datenquelle ein entsprechendes `<object>`-Tag für die Datenquelle definiert ist.

## id

Speichert den Namen eines Elements.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <p id="meinAbsatz">Text</p>
    <script type="text/javascript">
    <!--
     document.write("<br>Name des Absatzes: " + document.all.meinAbsatz.id);
    //-->
    </script>
    </body></html>

### Erläuterung:

Im Beispiel wird ein Absatz definiert, der mit `id=` den Namen `"meinAbsatz"` zugewiesen bekommt. In einem Script wird der vergebene Name mit document.write() zur Kontrolle in die Datei geschrieben.

## innerHTML

Speichert den Inhalt eines HTML-Elements. Wenn Sie beim dynamischen Ändern des gespeicherten Inhalts HTML-Tags notieren, werden diese bei der Aktualisierung des Elementinhalts interpretiert.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    var Neu = "neuer <b>fetter<\/b> Text";
    function Aendern() { document.all.meinAbsatz.innerHTML = Neu; }
    //-->
    </script>
    </head><body>
    <p id="meinAbsatz">Text</p>
    <a href="javascript:Aendern()">Anderer Text</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Textabsatz und einen Verweis. Beim Anklicken des Verweises wird die Funktion `Aendern()` aufgerufen. Diese Funktion weist dem Absatz mit der `id="meinAbsatz"` für die Eigenschaft `innerHTML` den Wert der zuvor definierten Variablen `Neu` zu. Der Inhalt des Absatzes ändert sich dann dynamisch und berücksichtigt dabei auch die HTML-Formatierung `<b>`...`</b>` beim neuen Inhalt des Elements.

Die Eigenschaft `innerHTML` sollten Sie nicht direkt beim Einlesen der HTML-Datei anwenden, sondern immer erst abhängig von Aktionen wie Verweisklicks oder Buttonklicks oder mit einem setTimeout() von einigen Sekunden davor. Bei Anwendung direkt beim Einlesen der Datei meldet der MS Internet Explorer 4.0 einen Laufzeitfehler.

## innerText

Speichert den Textinhalt eines HTML-Elements. Sie können den Inhalt dynamisch ändern.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    var Neu = "neuer Text";
    function Aendern() { document.all.meinAbsatz.innerText = Neu; }
    //-->
    </script>
    </head><body>
    <p id="meinAbsatz">Text</p>
    <a href="javascript:Aendern()">Anderer Text</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Textabsatz und einen Verweis. Beim Anklicken des Verweises wird die Funktion `Aendern()` aufgerufen. Diese Funktion weist dem Absatz mit der `id="meinAbsatz"` für die Eigenschaft `innerText` den Wert der zuvor definierten Variablen `Neu` zu. Der Inhalt des Absatzes ändert sich dann dynamisch.

Die Eigenschaft `innerText` sollten Sie nicht direkt beim Einlesen der HTML-Datei anwenden, sondern immer erst abhängig von Aktionen wie Verweisklicks oder Buttonklicks oder mit einem setTimeout() von einigen Sekunden davor. Bei Anwendung direkt beim Einlesen der Datei meldet der MS Internet Explorer 4.0 einen Laufzeitfehler.

## isTextEdit

Speichert, ob ein Element editierbar ist oder nicht. Wenn editierbar, hat die Eigenschaft den Wert `true`, wenn nicht editierbar, hat sie den Wert `false`. Derzeit sind nur bestimmte Formularelemente editierbar.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Ausgabe() {
     var Ausgabetext = "";
     for(var i=0;i<document.Testform.length;++i)
      Ausgabetext = Ausgabetext + "<br>" + document.all.tags("input")[i].isTextEdit;
     document.all.Ausgabe.innerHTML = Ausgabetext;
    }
    //-->
    </script>
    </head><body>
    <form name="Testform" action="">
    <input type="text" size="30"><br>
    <input type="radio"><br>
    <input type="button" value="Test" onClick="Ausgabe()">
    </form>
    <p id="Ausgabe"></p>
    </body></html>

### Erläuterung:

Das Beispiel definiert ein Formular mit einigen verschiedenen Elementen. Das letzte Element ist ein Button. Beim Anklicken des Buttons wird die Funktion `Ausgabe()` aufgerufen. Diese Funktion ermittelt in einer Schleife für jedes Element des Formulars, ob es editierbar ist oder nicht. Die Werte werden in einer Variablen `Ausgabetext` gesammelt und HTML-formatiert. Am Ende wird dem Textabsatz, der in der Datei am Ende definiert ist, mit der Eigenschaft innerHTML der gespeicherte Wert von `Ausgabetext` zugewiesen. Auf diese Weise steht hinterher in der Datei, welche der Formularfelder als editierbar gelten und welche nicht.

## lang

Speichert die Sprache eines HTML-Tags, wie sie im Attribut `lang=` definierbar ist.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <p id="Absatz" lang="it">mi chiamo Stefan</p>
    <script type="text/javascript">
    <!--
     alert(document.all.Absatz.lang);
    //-->
    </script>
    </body></html>

### Erläuterung:

Im Beispiel wird ein Textabsatz definiert, dem mit `lang=` die Sprache Italienisch (`it`) zugewiesen wird. Unterhalb davon steht ein kleines JavaScript, das mit alert() den vergebenen Wert für die Sprache ausgibt.

## language

Speichert, welche Sriptsprache in einem aktuellen Script verwendet wird.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script language="JScript" type="text/jscript">
    <!--
     alert(alert(document.all.tags("script")[0].language);
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel gibt mit alert() aus, welche Scriptsprache für die Ausgabe bewirkt hat. Das ist derjenige Wert, der im `<script>`-Tag beim Attribut `language=` vergeben wurde. Da der MS Internet Explorer mehrere Scriptsprachen beherrscht, kann dieser Befehl in manchen Fällen für Gewissheit sorgen, etwa, wenn man ihn in eine if-Abfrage einbettet.

## length

Speichert die Anzahl HTML-Tags einer HTML-Datei. Tags, die aus einem einleitenden und einem abschließenden Tag bestehen, werden als ein Tag gezählt.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <p>Ein Absatz</p>
    <p>Noch ein Absatz</p>
    <script type="text/javascript">
    <!--
    alert("Diese Datei hat " + document.all.length + " HTML-Tags");
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel zeigt eine vollständige HTML-Datei mit Grundgerüst, zwei Textabsätzen und einem Script. Innerhalb des Script wird mit alert() ausgegeben, wie viele HTML-Tags die Datei enthält.

## offsetHeight

Speichert die Höhe eines Elements.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body id="DieseDatei">
    <script type="text/javascript">
    <!--
     alert(document.all.DieseDatei.offsetHeight);
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel gibt mit alert() die reale Höhe des `<body>`-Tags der Datei aus. Das Ergebnis ist die tatsächliche Anzeigehöhe des Fensters, in dem das Dokument angezeigt wird. Die Eigenschaft lässt sich aber ebensogut auf HTML-Elemente innerhalb der angezeigten Inhalte anwenden.

## offsetLeft

Speichert den Abstand eines Elementes zum linken Rand des in der Eigenschaft offsetParent gespeicherten Offset-Elternelementes.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <div id="Bereich" style="padding:20px">
    <p id="Absatz">Hier etwas Text</p>
    </div>
    <script language="JavaScript" type="text/javascript">
    <!--
     alert(document.all.Bereich.offsetLeft);
     alert(document.all.Absatz.offsetLeft);
    //-->
    </script>
    </body></html>

### Erläuterung:

Im Beispiel wird ein `<div>`-Tag mit einem `<p>`-Tag innerhalb davon definiert. Damit ein wenig innerer Abstand in die Sache kommt, wird beim `<div>`-Tag mit Hilfe einer Style-Sheet-Angabe ein Innenabstand definiert. Unterhalb dieser Befehle steht ein JavaScript, das die Abstände der beiden Elemente zum jeweiligen linken Rand des Offset-Elternelementes mit alert() ausgibt. Das Offset-Elternelement des Elementes `Bereich` ist das Body-Element. Für dieses Element wird der Abstand zwischen Body und Bereich in der Eigenschaft `offsetLeft` gespeichert. Das Offset-Elternelement des Elementes `Absatz` ist das Element `Bereich` selbst. In der Eigenschaft `offsetLeft` ist jetzt der Abstand vom linken Rand vom Element `Bereich` bis zum Element gespeichert.

### Beachten Sie:

Besitzt ein Element einen Innenabstand (`padding`), so ist im MS Internet Explorer 5.0 die Eigenschaft `offsetLeft` fehlerhaft, da der gesetzte Innenabstand in die Angabe mit einfließt. Das gilt auch für Padding-Angaben, die in einem inneren Element definiert sind.

## offsetParent

Speichert dasjenige Elternelement eines Elements, von dessen Positionierung die Positionierung des Elements abhängt. `offsetParent` ist dabei eine Art Zeiger auf das übergeordnete Element. Hinter der Eigenschaft lassen sich wiederum alle Eigenschaften und Methoden des `all`-Objekts notieren. Diese gelten dann für das Element, auf das der Zeiger zeigt. Existiert kein Offset-Elternelement so hat die Eigenschaft `offsetParent` den Wert `null`.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <table><tr><td><div>
    <a><b id="Fett">Hier etwas Text</b></a>
    </div></td></tr></table>

    <script type="text/javascript">
    <!--

     var Eltern=document.all.Fett.offsetParent;
     while (Eltern) {
     document.write(Eltern.tagName+"<br>");
     Eltern=Eltern.offsetParent;
     }
    //-->
    </script>
    </body></html>

### Erläuterung:

Im Beispiel ist eine Tabelle notiert, in deren einziger Zelle weitere Elemente enthalten sind. Das innerste Element ist das Element `<b>..</b>` mit dem id-Namen `Fett`. Im nachfolgenden JavaScript-Bereich wird der Variablen `Eltern` das Offset-Elternelement des Elementes `Fett` mit Hilfe von `offsetParent` zugewiesen. Die nachfolgende while-Schleife gibt zu jedem Offset-Elternelement den Namen des Tags aus. Anschließend wird der Variablen `Eltern` das Offset-Elternelement des gerade angesprochenen Elementes zugewiesen. Die Schleife bricht ab, wenn kein Offset-Elternelement mehr existiert. So, wie im Beispiel die `all`-Objekteigenschaft tagName auf `offsetParent` angewendet wird, lassen sich auch alle anderen Eigenschaften und Methoden des `all`-Objekts auf das Element anwenden.

Im Unterschied zur Eigenschaft parentElement wird in der Eigenschaft `offsetParent` immer dasjenige Element gespeichert, das die Position des Elements im Fenster festlegt.

### Beachten Sie:

Im MS Internet Explorer 4.0 ist das Offset-Elternelement von einer Tabellenzelle immer die Tabellenzeile. Ab dem MS Internet Explorer 5.0 wird als Offset-Elternelement einer Zelle die Tabelle selbst angesehen.

## offsetTop

Speichert den Abstand eines Elements zum oberen Rand des in der Eigenschaft offsetParent gespeicherten Offset-Elternelements.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <div id="Bereich" style="padding:20px">
    <p id="Absatz">Hier etwas Text</p>
    </div>
    <script type="text/javascript">
    <!--
     alert(document.all.Bereich.offsetTop);
     alert(document.all.Absatz.offsetTop);
    //-->
    </script>
    </body></html>

### Erläuterung:

Im Beispiel wird ein `<div>`-Tag mit einem `<p>`-Tag innerhalb davon definiert. Damit ein wenig innerer Abstand in die Sache kommt, wird beim `<div>`-Tag mit Hilfe einer Style-Sheet-Angabe ein Innenabstand definiert. Unterhalb dieser Elemente ist ein JavaScript notiert, das mit alert() die Abstände der beiden Elemente zum oberen Rand des Offset-Elternelementes ausgibt.

### Beachten Sie:

Im MS Internet Explorer 5.0 wird in einem untergeordneten Element eine bestehende Paddingangabe des übergeordneten Elementes nicht berücksichtigt, sofern sich kein Element vor dem abgefragten Element befindet.

## offsetWidth

Speichert die Breite eines Elements.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body id="DieseDatei">
    <script type="text/javascript">
    <!--
     alert(document.all.DieseDatei.offsetWidth);
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel gibt mit alert() die reale Breite des `<body>`-Tags der Datei aus. Das Ergebnis ist die tatsächliche Anzeigebreite des Fensters, in dem das Dokument angezeigt wird. Die Eigenschaft lässt sich aber ebensogut auf HTML-Elemente innerhalb der angezeigten Inhalte anwenden.

## outerHTML

Speichert den Inhalt eines HTML-Tags plus das Anfangs- und End-Tag mit allen Angaben.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html>
    <head>
    <title>Test</title>
    </head>
    <body>
    <a id="Verweis" href="javascript:alert(this.Verweis.outerHTML)">Verweis</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Verweis, der beim Anklicken seinen eigenen vollständigen HTML-Konstrukt mit alert() ausgibt.

Die Eigenschaft `outerHTML` sollten Sie nicht direkt beim Einlesen der HTML-Datei anwenden, sondern immer erst abhängig von Aktionen wie Verweisklicks oder Buttonklicks oder mit einem setTimeout() von einigen Sekunden davor. Bei Anwendung direkt beim Einlesen der Datei meldet der MS Internet Explorer 4.0 einen Laufzeitfehler.

## outerText

Speichert den gleichen Wert wie innerText, kann jedoch beim Ändern umgebende HTML-Tags entfernen und durch Text ersetzen.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Test() {
     document.all.fett.outerText = document.all.fett.innerText;
    }
    //-->
    </script>
    </head><body>
    <p>Text mit <b id="fett" onclick="Test()">fetter Schrift</b></p>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Text mit einem als fett markierten Teil. Beim Anklicken des fetten Teils wird die Funktion `Test()` aufgerufen. Diese Funktion ersetzt den Wert von `outerText` des fetten Elements durch den Wert von `innerText` des gleichen Elements. Der Effekt ist, dass die Formatierung mit `<b>`...`</b>` verloren geht, weil outerText intern die umgebende HTML-Formatierung mit speichert, innerText aber nicht.

Die Eigenschaft `outerText` sollten Sie nicht direkt beim Einlesen der HTML-Datei anwenden, sondern immer erst abhängig von Aktionen wie Verweisklicks oder Buttonklicks oder mit einem setTimeout() von einigen Sekunden davor. Bei Anwendung direkt beim Einlesen der Datei meldet der MS Internet Explorer 4.0 einen Laufzeitfehler.

## parentElement

Speichert das Elternelement eines Elements. `parentElement` ist dabei eine Art Zeiger auf das übergeordnete Element. Hinter der Eigenschaft lassen sich wiederum alle Eigenschaften und Methoden des `all`-Objekts notieren. Diese gelten dann für das Element, auf das der Zeiger zeigt. Existiert kein Elternelement so hat die Eigenschaft `parentElement` den Wert null.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <table><tr><td><div>
    <a><b id="Fett">Hier etwas Text</b></a>
    </div></td></tr></table>

    <script type="text/javascript">
    <!--
     var Eltern=document.all.Fett.parentElement;
     while (Eltern) {
     document.write(Eltern.tagName+"<br>");
     Eltern=Eltern.parentElement;
     }
    //-->
    </script>
    </body></html>

### Erläuterung:

Im Beispiel ist eine Tabelle notiert, in deren einziger Zelle weitere Elemente enthalten sind. Das innerste Element ist das Element `<b>..</b>` mit dem Namen `Fett`. Im JavaScript-Bereich wird der Variablen `Eltern` das Elternelement des Elementes `Fett` mit der Eigenschaft `parentElement` zugewiesen. Die nachfolgende while-Schleife gibt von jedem Elternelement den Namen des Tags aus. Anschließend wird der Variablen `Eltern` das Elternelement des gerade angesprochenen Elementes zugewiesen. Die Schleife bricht ab, wenn kein Elternelement mehr existiert. So, wie im Beispiel die `all`-Objekteigenschaft tagName auf `parentElement` angewendet wird, lassen sich auch alle anderen Eigenschaften und Methoden des `all`-Objekts auf das Element anwenden.

Im Unterschied zur Eigenschaft offsetParent wird in der Eigenschaft `parentElement` immer das unmittelbar übergeordnete Element gespeichert.

## parentTextEdit

Speichert das nächsthöhere Element in der Elementhierarchie, das Editieren von Text erlaubt.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Test() {
     alert(document.all.Verweis.parentTextEdit.tagName);
    }
    //-->
    </script>
    </head><body>
    <a id="Verweis" href="javascript:Test()">Editieren?</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Verweis. Beim Anklicken des Verweises wird die Funktion `Test()` aufgerufen. Diese Funktion gibt mit alert() den Namen desjenigen HTML-Tags aus, das aus Sicht des Verweises das nächsthöhere Element darstellt, das Editieren von Text erlaubt. Im Beispiel ist dies das `<body>`-Tag. Der Inhalt dieses Tags ist zwar nicht editierbar, aber es ist dasjenige nächsthöhere Tag, unterhalb dessen eidierbare Elemente wie Formular-Eingabefelder notiert werden können.

### Beachten Sie:

MS Internet Explorer 5.0 Macintosh Edition interpretiert dieses Beispiel nicht.

## recordNumber

Speichert, der wie vielte Datensatz angezeigt wird. Dies bezieht sich auf das Konzept der Datenanbindung. Zur Einführung in das Thema lesen Sie den Abschnitt über Datenanbindung (Microsoft).

### Beispiel:

    <tr>
    <td><b>Vorname:</b></td>
    <td><span id="Test" datafld="vorname">
    </span><input type="button" value="Test"
    onClick="alert(document.all.Test.recordNumber)">
    </td>
    </tr>

### Erläuterung:

Das Beispiel stellt eine Tabellenzeile dar, in der ein Datenfeld ausgegeben wird (Die übrigen Befehle zur Datenanbindung fehlen hier). Zu Testzwecken ist ein Button eingefügt, bei dessen Anklicken die Datensatznummer des aktuell angezeigten Datensatzes ausgegeben wird.

## sourceIndex

Speichert, das wie vielte HTML-Element ein Element innerhalb einer HTML-Datei ist.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <p>Etwas Text mit<br>Zeilenumbruch</p>
    <p id="Absatz">HTML-Element, aber das wie vielte?</p>
    <a href="javascript:alert(document.all.Absatz.sourceIndex)">Test</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält verschiedene Elemente, unter anderem einen Absatz mit dem id-Namen `"Absatz"`. Außerdem enthält das Beispiel einen Verweis. Beim Anklicken des Verweises wird mit alert() ausgegeben, das wie vielte Element der Absatz mit besagtem Namen innerhalb der HTML-Datei ist. Im Beispiel ist es das 7. Element, denn es werden alle einleitenden und alleinstehenden HTML-Tags der gesamten HTML-Datei gezählt.

## tagName

Speichert den HTML-Tagnamen eines Elements.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body id="DieseDatei">
    <a href="javascript:alert(document.all.DieseDatei.tagName)">Test</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Verweis. Beim Anklicken des Verweises wird mit alert() der HTML-Tagname desjenigen Elements ausgegeben, das den id-Namen `"DieseDatei"` hat. Im Beispiel ist es das `<body>`-Tag.

## title

Speichert den Wert, der im Attribut `title=` eines Elements vergeben wurde. Dieses Attribut ist beim MS Internet Explorer bei allen sichtbaren Elementen erlaubt und bewirkt beim Darüberfahren mit der Maus, dass eine Art Tooltip (Hilfetext-Popup) zu dem Element angezeigt wird.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <p id="Absatz" title="Hilfe zum Text" onClick="alert(document.all.Absatz.title)">Text</p>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Textabsatz. Dieser Textabsatz erhält mit dem Attribut `title=` einen Tooltip-Text. Beim Darüberfahren mit der Maus erscheint der Tooltip als kleines Popup-Fenster. Beim Anklicken des Absatzes wird der gleiche Text mit alert() ausgegeben.

## click()

Bewirkt, dass ein Element angeklickt wird, so wie wenn der Anwender mit der Maus auf das Element klickt. Erwartet keine Parameter.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <a id="V1" href="javascript:alert('Verweis 1 geklickt')">Verweis 1</a><br>
    <a href="javascript:document.all.V1.click()">Verweis 2</a><br>
    </body></html>

### Erläuterung:

Das Beispiel enthält zwei Verweise. Beim Klicken auf den ersten Verweis wird mit alert() die Meldung "Verweis 1 geklickt" ausgegeben. Beim Klicken auf den zweiten Verweis wird die Methode `click()` auf den ersten Verweis angewendet. Dadurch wird dieser scriptgesteuert angeklickt, und es wird trotz Klickens auf den zweiten Verweis die Meldung "Verweis 1 geklickt" ausgegeben.

## contains()

Ermittelt, ob ein Element ein bestimmtes anderes Element enthält. Erwartet als Parameter den id-Namen des gesuchten inneren Elements.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Test() {
     if(document.all.dieseDatei.contains(Absatz))
      alert(document.all.Absatz.innerText);
    }
    //-->
    </script>
    </head><body id="dieseDatei">
    <p id="Absatz">Ein Text</p>
    <a href="javascript:Test()">Test</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Verweis. Beim Anklicken des Verweises wird die Funktion `Test()` aufgerufen. Diese Funktion überprüft, ob das `<body>`-Tag, das den id-Namen `dieseDatei` hat, ein Element enthält, das den id-Namen `Absatz` hat. Wenn ja, wird der innere Text dieses Elements mit alert() ausgegeben.

## getAttribute()

Ermittelt, ob ein Element in sinem HTML-Tag ein bestimmtes Attribut enthält oder nicht. Gibt den Wert zurück, den das Attribut hat, falls das Attribut gefunden wird, ansonsten die leere Zeichenkette `""`. Erwartet folgende Parameter:
1. Attribut = der Name des gesuchten Attributs im HTML-Tag.
2. Groß/Kleinschreibung = `true` übergeben, wenn bei dem Attribut Groß/Kleinschreibung unterschieden werden soll, oder `false`, wenn es egal ist, wie das Attribut geschrieben ist.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Test() {
     if(document.all.Absatz.getAttribute("align","false") == "center")
       document.all.Absatz.setAttribute("align","right","false");
    }
    //-->
    </script>
    </head><body>
    <p id="Absatz" align=center>Ein Text</p>
    <a href="javascript:Test()">Test</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen zentriert ausgerichteten Absatz mit dem id-Namen `Absatz` und einen Verweis. Beim Anklicken des Verweises wird die Funktion `Test()` aufgerufen. Diese Funktion ermittelt mit `getAttribute()`, ob das Element mit dem Namen `Absatz` ein Attribut `align` enthält. Außerdem wird abgefragt, ob der Wert diser Angabe gleich `center` ist. Da dies im Beispiel der Fall ist, wird die abhängige Anweisung ausgeführt. Darin wird das Attribut `align=` mit Hilfe von setAttribute() dynamisch geändert, sodass der Absatz hinterher rechtsbündig ausgerichtet ist.

## insertAdjacentHTML()

Fügt zusätzlichen HTML-Code vor oder oder nach einem Element ein. Erwartet folgende Parameter:
1. Position = Angabe, wo genau der HTML-Code hinzugefügt werden soll. Übergeben Sie `BeforeBegin`, wenn der Code vor dem einleitenden HTML-Tag des Elements eingefügt werden soll, `AfterBegin`, wenn der Code nach dem einleitenden Tag vor dem Inhalt eingefügt werden soll, `BeforeEnd`, wenn der Code am Ende des Inhalts vor dem abschließenden Tag eingefügt werden soll, oder `AfterEnd`, wenn der Code hinter dem abschließenden HTML-Tag eingefügt werden soll.
2. Code = Der HTML-Code, der eingefügt werden soll.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    var i = 0;
    var Nummerierung = "";
    function Nummerieren() {
      Nummerierung = "<b>" + (i+1) + ".<\/b> ";
      if(i < document.all.tags("p").length)
       document.all.tags("p")[i].insertAdjacentHTML("AfterBegin",Nummerierung);
      i = i + 1;
    }
    //-->
    </script>
    </head><body>
    <p>Ein Absatz</p>
    <p>Ein anderer Absatz</p>
    <p>Noch ein Absatz</p>
    <a href="javascript:Nummerieren()">Nummerieren</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält drei Absätze und einen Verweis. Bei jedem Klick auf den Verweis wird der jeweils nächste Absatz dynamisch durchnummeriert. Dazu wird beim Klick auf den Verweis die Funktion `Nummerieren()` aufgerufen. Diese Funktion verwaltet die beiden global definierten Variablen `i` (Zähler für die Nummerierung) und `Nummerierung` (HTML-formatierte Zeichenkette, die die Nummerierung hinzufügt). Solange der Zähler für die Nummerierung kleiner ist als die Anzahl der verfügbaren Absätze, wird im jeweils nächsten Absatz mit `insertAdjacentHTML()` hinter dem einleitenden `<p>`-Tag dynamisch der aktuelle Wert der Variablen `Nummerierung` eingefügt.

## insertAdjacentText()

Fügt zusätzlichen Text vor oder oder nach einem Element ein. Erwartet folgende Parameter:
1. Position = Angabe, wo genau der Text hinzugefügt werden soll. Übergeben Sie `BeforeBegin`, wenn der Text vor dem einleitenden HTML-Tag des Elements eingefügt werden soll, `AfterBegin`, wenn der Text nach dem einleitenden Tag vor dem Inhalt eingefügt werden soll, `BeforeEnd`, wenn der Text am Ende des Inhalts vor dem abschließenden Tag eingefügt werden soll, oder `AfterEnd`, wenn der Text hinter dem abschließenden HTML-Tag eingefügt werden soll.
2. Text = Der Text, der eingefügt werden soll.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Ergaenzen() {
     document.all.DynText.insertAdjacentText("BeforeEnd"," wird dynamisch!");
    }
    //-->
    </script>
    </head><body>
    <p id="DynText">HTML</p>
    <a href="javascript:Ergaenzen()">Ergaenzen</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Absatz mit dem id-Namen `DynText`, der nur das Wort "HTML" enthält. Beim Anklicken des Verweises unterhalb wird die Funktion `Ergaenzen()` aufgerufen. Diese Funktion fügt vor dem abschließenden Tag den Text " wird dynamisch" ein.

## removeAttribute()

Entfernt ein bestimmtes Attribut aus einem bestimmten HTML-Tag. Erwartet folgende Parameter:
1. Attribut = der Name des gesuchte Attributs im HTML-Tag.
2. Groß/Kleinschreibung = `true` übergeben, wenn bei dem Attribut Groß/Kleinschreibung unterschieden werden soll, oder `false`, wenn es egal ist, wie das Attribut geschrieben ist.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Test() {
    document.all.Absatz.removeAttribute("align","false");
    }
    //-->
    </script>
    </head><body>
    <p id="Absatz" align=center>Ein Text</p>
    <a href="javascript:Test()">Test</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen zentriert ausgerichteten Absatz mit dem id-Namen `Absatz` und einen Verweis. Beim Anklicken des Verweises wird die Funktion `Test()` aufgerufen. Diese Funktion entfernt aus dem Absatz das Attribut `align`, so dass der Absatz hinterher linksbündig ausgerichtet ist, weil das die Normaleinstellung für das `<p>`-Tag ist.

### Beachten Sie:

Der MS Internet Explorer 5.0 Macintosh Edition interpretiert dieses Beispiel nicht.

## scrollIntoView()

Positioniert den Inhalt im Anzeigefenster des Browsers so, dass ein bestimmtes Element angezeigt wird. Erwartet einen Parameter. Übergeben Sie `true`, wenn der Inhalt so positioniert werden soll, dass das Element oben im Anzeigefenster erscheint, oder `false`, wenn das Element unten im Anzeigefenster platziert sein soll.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Test() {
    document.all.Absatz.scrollIntoView("true");
    }
    //-->
    </script>
    </head><body>
    <p id="Absatz">Ein Text</p>
    <script type="text/javascript">
    <!--
    for(i=1;i<100;i++)
     document.write("<br>Zeile " + i);
    //-->
    </script>
    <p><a href="javascript:Test()">Test</a></p>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Textabsatz mit dem id-Namen `Absatz`. Dann schreibt das Beispiel in einem Scriptbereich mit der write()-Methode 100 Zeilen in die Datei, damit die Datei zu Testzwecken schön lang ist. Unterhalb davon ist dann ein Verweis notiert. Beim Anklicken des Verweises wird die Funktion `Test()` aufgerufen. Diese Funktion positioniert den Inhalt des Anzeigefensters neu, und zwar so, dass der Textabsatz `Absatz` am oberen Fensterrand angezeigt wird.

## setAttribute()

Fügt in einem bestimmten HTML-Tag ein bestimmtes Attribut hinzu. Erwartet folgende Parameter:
1. Attribut = der Name des gewünschten Attributs.
2. Wert = die gewünschte Wertzuweisung für die Zusatzangabe.
3. Groß/Kleinschreibung = `true` übergeben, wenn bei dem Attribut Groß/Kleinschreibung unterschieden werden soll, oder `false`, wenn es egal ist, wie das Attribut geschrieben wird.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Test() {
    document.all.Absatz.setAttribute("align","center","false");
    }
    //-->
    </script>
    </head><body>
    <p id="Absatz">Ein Text</p>
    <a href="javascript:Test()">Test</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen zentriert ausgerichteten Absatz mit dem id-Namen `Absatz` und einen Verweis. Beim Anklicken des Verweises wird die Funktion `Test()` aufgerufen. Diese Funktion fügt in dem Absatz das Attribut `align` hinzu, und zwar mit der Wertzuweisung `center`. Dadurch wird der Absatz hinterher zentriert ausgerichtet.

| style
| node

© 2001 selfhtml@teamone.de