H-P Ortner: Erklärung von options.length in SELFHTML

Hallo!

In SELFHTML gibt es in der Objektreferenz von Javascript eine Erklärung zu options.length.

Unter http://selfhtml.teamone.de/javascript/objekte/options.htm#length
zeigt das Symbol, die Eigenschaft length könne nur gelesen werden.

Unter http://selfhtml.teamone.de/javascript/objekte/options.htm#elemente_loeschen
steht, es ist auch möglich dem Option-Array eine neue Länge zuzuweisen.
Ist das ein Widerspruch oder habe ich da etwas falsch verstanden?
Hat da jemand von Euch Erfahrung damit?

Viele Grüße
H-P Ortner

  1. Hallo H-P,

    Ist das ein Widerspruch oder habe ich da etwas falsch verstanden?

    Eigentlich nicht. Denn das Loeschen besteht nicht darin, der Eigenschaft length einen neuen Wert zuzuweisen. length kann nicht - auch beim Loeschen nicht - ein sogenannter left-value sein, also etwas, das in einer Zuweisung links steht.

    viele Gruesse
      Stefan Muenz

    1. Hallo Stefan!

      Ist das ein Widerspruch oder habe ich da etwas falsch verstanden?

      Eigentlich nicht. Denn das Loeschen besteht nicht darin, der Eigenschaft length einen neuen Wert zuzuweisen. length kann nicht - auch beim Loeschen nicht - ein sogenannter left-value sein, also etwas, das in einer Zuweisung links steht.

      So hätte ich den Satz "Alternativ ist es auch möglich, dem Option-Array eine neue Länge zuzuweisen" aber verstanden.

      Ich habe Dein Beispiel also so verändert, wie ich den Satz verstanden habe:

      <html><head><title>Test</title>
      <script type="text/javascript">
      </script>
      </head><body>
      <form name="Testform" action="">
      <select name="Auswahl" size="8">
      <option>Auswahl 1</option>
      <option>Auswahl 2</option>
      <option>Auswahl 3</option>
      <option>Auswahl 4</option>
      <option>Auswahl 5</option>
      </select>
      <br>
      <input type="button" value="Loeschen" onClick="document.Testform.Auswahl.options.length=1">
      </form>
      </body></html>

      Das funktioniert (habe es mit Mozilla 1.5 und IE 6.0 getestet)
      Als nachgesehen beim w3c
      Im DOM 1 ist es readonly
      http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-94282980
      Im Dom 2 ist es nicht so eindeutig erklärt:
      http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-94282980

      Das Thema hat mich beschäftigt weil ich ein Select mit Werten aus einem anderen Frame fülle.
      Der Hinweis, dass das Anfügen neuer options-Elemente in einem anderen Frame mit IE5.0 nicht funktioniert, hat mir sehr geholfen. Ich habe also eine Funktion in das Dokument eingebaut, die die Daten in der Auswahl anfügt. Die kann ich aus dem anderen Frame auch ansprechen.
      Für das Löschen ist das nicht erforderlich, weil aktuelle Browser und der IE5.0 die Zuweisung length= 1 ("--Bitte wählen Sie aus--") scheinbar unterstützen.

      Viele Grüße
      H-P Ortner