Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von April

SELFHTML Forumsarchiv
Text eines <option> per JavaScript setzen (Leerzeichen)

Informationsseite
  1. Seite (JAVASCRIPT) Text eines <option> per JavaScript setzen (Leerzeichen) von Christian S., 30. 04. 2007, 13:32
nach unten

Text eines <option> per JavaScript setzen (Leerzeichen)

Die folgende Nachricht zum Thema stammt von: Christian S., 30. 04. 2007, 13:32

Hi

ich möchte den Text eines <option> Elements per JavaScript setzen.

An sich klappt auch:

drop.options[0].text = "Hallo Welt";

mache ich das ganze aber über:

drop.options[0].text = "Hallo";
drop.options[0].text += " ";
drop.options[0].text += "Welt";

dann verschluckt er das Leerzeichen...

Das Problem tritt nur im Firefox auf.

Möchte eine editierbare Dropdownliste basteln und addiere beim onkeypress immer das jeweilige Zeichen auf den Text.

Hat jemand eine Lösung?

Gruß
Christian.

nach obennach unten

Text eines <option> per JavaScript setzen (Leerzeichen)

Die folgende Nachricht zum Thema stammt von: twseiten_de, 30. 04. 2007, 14:02

Hallo,

unabhängig vom o.g. Fehler:

drop.options[0].text = "Hallo";
drop.options[0].text += " ";
drop.options[0].text += "Welt";

bedeutet, dass 3x die Referenz auf .text ermittelt wird, also unnötig. Daher den String als Variable zusammen bauen und dann .text
1x zuweisen. Der Parser freut sich.

Gruss Tom.



nach obennach unten

Text eines <option> per JavaScript setzen (Leerzeichen)

Die folgende Nachricht zum Thema stammt von: D.R., 30. 04. 2007, 14:32

Hallo,

»» unabhängig vom o.g. Fehler:
»»
»» drop.options[0].text = "Hallo";
»» drop.options[0].text += " ";
»» drop.options[0].text += "Welt";
»»
»» bedeutet, dass 3x die Referenz auf .text ermittelt wird

Gilt das etwa auch für Eigenschaften? Bei Methoden kann ich's ja verstehen, aber Eigenschaften sind doch fest zugewiesene Werte/Referenzen (abgesehen von getter-Methoden wie textContent oder innerHTML).

Eine Verlangsamung könnte sich höchstens durch die Aktualisierung der Darstellung ergeben, aber das macht der Browser ja auch beim Scrollen und Skalieren.

mfg. Daniel
--
Experten raten von der Verwendung des Internet Explorers ab!
Mein SELF-stylesheet | Darum Firefox!
Selfcode: ie:{ fl:( br:> va:) ls:& fo:) rl:( n4:# ss:| de:> js:) mo:} zu:}

nach obennach unten

Text eines <option> per JavaScript setzen (Leerzeichen)

Die folgende Nachricht zum Thema stammt von: Struppi, 30. 04. 2007, 14:57

»» bedeutet, dass 3x die Referenz auf .text ermittelt wird, also unnötig. Daher den String als Variable zusammen bauen und dann .text

Du erzählst viel Unfug. Die Referenz auf text wird hier nicht ermittelt, der Tipp mit dem zusammenbauen stimmt allerdings, wobei das in diesem Fall nur ein Beispeil ist um das Phänomen zu zeigen, also ist auch der Tipp erstmal Unfug.

»» 1x zuweisen. Der Parser freut sich.

Dem Parser ist das recht egal

Struppi.
--
Javascript ist toll (Perl auch!)

nach obennach unten

Text eines <option> per JavaScript setzen (Leerzeichen)

Die folgende Nachricht zum Thema stammt von: twseiten_de, 03. 05. 2007, 21:22

Hallo,

die eigenschaft .teext wird mit Wert belegt, also muss ein Zeiger ermittelt werden, der auf einen Speicherbereich zeigt, der den Wert aufnimmt, wobei der Datentyp den Brwoser bzw. die Scriptmaschine anweist, wie die Daten zu hinterlegen sind.


drop.options[0].text = "Hallo";

bedeutet also, dass die Collection (Zeigerfeld) .options am Index - hier 0 ausgelesen wird, der ermittelte Zeiger zum Adressbereich
der Eigenschaft .text führen muss.

Drop selbst ist ebenfalls ein Zeiger auf ein Objekt.

Es findet also ein Zeigerdurchhangeln statt und das 3x, nur um letztendlich einen Wert zu füllen.

Das Zeigerhangeln entfällt etwas, wenn man z.B.
 var Zeiger=drop.options[0]; nimmt, also den Parser genau 1x
 den Zeiger ermitteln lässt.

Das Zeigerhangeln entfällt vorallem bei einer globalen Variable, deren Referenz schon ermittelt ist.

Ergo:

var Kette='text1';
Kette+=' ...';
.....

drop.options[0].text=Kette;

Soweit zu Deiner Unfugbehauptung: Das waren Programmierungsgrundlagen bei Interpreterverwendung per Script.

Wer übrigens nicht parserfreundlich programmiert, muss sich nicht wundern, wenn Script Laufzeit benötigt. Und Scriptoptimierung ist
der I-Punkt in Intelligenter Programmierung, gell :-)

Tom.

nach obennach unten

Text eines <option> per JavaScript setzen (Leerzeichen)

Die folgende Nachricht zum Thema stammt von: Struppi, 04. 05. 2007, 01:33

»» Wer übrigens nicht parserfreundlich programmiert, muss sich nicht wundern, wenn Script Laufzeit benötigt. Und Scriptoptimierung ist
»» der I-Punkt in Intelligenter Programmierung, gell :-)

Mal abgesehen von den unsauberkeinten in deiner Erläuterung, du hast das gelesen was ich geschrieben habe?
Es ging darum einen Effekt zu zeigen, nicht darum irgendetwas zu optimieren, im gegenteil durch die Optiemierung kann man den Effekt nicht mehr sehen. Und wenn du dir Beschreibung der frage durchliest wird dir vielleicht aufgehen, dass es um genau diesen Effekt ging.

Struppi.
--
Javascript ist toll (Perl auch!)

nach obennach unten

Text eines <option> per JavaScript setzen (Leerzeichen)

Die folgende Nachricht zum Thema stammt von: rfb, 30. 04. 2007, 14:19

Moin

kann es sein dass FF Leerzeichen am Ende von options-Texten unterdrückt?

Falls ja (müsstest du wohl mal selbst testen) könntest du einfach ein geschütztes Leerzeichen ( String.fromCharCode(160) ) einfügen

Gruß
rfb
--
Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
(Galileo Galilei)

nach obennach unten

Text eines <option> per JavaScript setzen (Leerzeichen)

Die folgende Nachricht zum Thema stammt von: wahsaga, 30. 04. 2007, 14:21

hi,

»» drop.options[0].text = "Hallo";
»» drop.options[0].text += " ";
»» drop.options[0].text += "Welt";
»»
»» dann verschluckt er das Leerzeichen...

.text repräsentiert einen Textknoten.
Whitespace am Anfang und Ende von Textknoten ist per Definition zu eliminieren.

»» Das Problem tritt nur im Firefox auf.

Dann rufen deine anderen Testbrowser wohl nicht die normalize-Methode des parentNodes auf, obwohl sie es eigentlich tun sollten.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

nach obennach unten

Text eines <option> per JavaScript setzen (Leerzeichen)

Die folgende Nachricht zum Thema stammt von: D.R., 30. 04. 2007, 14:51

Hallo,

»» .text repräsentiert einen Textknoten.

Nein, er repräsentiert den Textknoten ohne Leerzeichen am Anfang und Ende.

»» Whitespace am Anfang und Ende von Textknoten ist per Definition zu eliminieren.

Nein. Der Textknoten bleibt so, wie er ist. Nur die text-Eigenschaft wird bearbeitet.

Beispiel:


<select>
<option>
Text
</option>
</select>
<script type="text/javascript">
window.onload = function(){
 var option = document.getElementsByTagName("option")[0];
 alert("Text: „"+option.text + "“");
 alert("firstChild.nodeValue: „" + option.firstChild.nodeValue + "“");
}
</script>



mfg. Daniel
--
Experten raten von der Verwendung des Internet Explorers ab!
Mein SELF-stylesheet | Darum Firefox!
Selfcode: ie:{ fl:( br:> va:) ls:& fo:) rl:( n4:# ss:| de:> js:) mo:} zu:}

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von April

© 1998-2006 Seite Impressum, Software: Classic Forum