nodeValue mit HTML

mille

Erfahrenes Mitglied
Moin Leute,

jetzt hab ich ewig gesucht und werd nicht schlau.
Ich hab folgendes javascript.
Javascript:
    pdiv = document.getElementById('id');
    // setze text
    pdiv.childNodes[2].nodeValue = "beispiel <br /> test";

So, jetzt soll in dem div (childNode[2] ist korrekt!] der text "beispiel ZEILENUMBRUCh test" ausgegeben werden.
Aber das passiert nicht. Stattdessen wird der text ausgegeben, wie er durch nodeValue in den Knoten geschrieben wird. Wie bekomme ich es jetzt hin, dass der Browser den nodeValue nocheinmal parst?

Beste Grüße
 
Hallo,
HTML:
pdiv.childNodes[2].innerHTML = "beispiel <br /> test";
sollte in allen halbwegs modernen Browsern funktionieren.

Alternativ könntest du auch mit createElement() und replaceNode() arbeiten.
 
Moin,

also innerHTML möchte ich nicht verwenden und die Verwendung ist auch nicht DOM gerecht.
createTextNode() und appendChild - was quasi dem replaceChild ebenbürtig sein sollte - hab ich verwendet, da wird das <br /> dennoch ausgegeben und nicht geparst. Das funktioniert leider nicht :(
 
So, jetzt soll in dem div (childNode[2] ist korrekt!] der text "beispiel ZEILENUMBRUCh test" ausgegeben werden.
Hallo,
wenn du oben genannten String in zwei Textknoten ("beispiel " und " test") und den Zeilenumbruch in ein Elementknoten aufspaltest, dann funktioniert das (was immer du auch mit "ausgegeben werden" meinst).
 
Ah logisch. BR is auch ein Knoten/Node.
Wie umständlich :D.

Dennoch hab ich noch ein Problem. Entitäten für Umlaute werden auch nciht geparst.

Also eine Wertzuweisung an NodeValue wie: "Umlauttest &auml; &ouml; &uuml;" resultiert auch mit einer Ausgabe "Umlauttest &auml; &ouml; &uuml;" statt eben "Umlauttest ä ö ü" wie gewünscht.

Ich habe zwar jetzt vorläufig innerHTML verwendet, das soll aber nicht des Rätels Lösung sein, weil ich eben nur DOM-Funktionen nutzen möchte. Auch kommt eine Verwendung von Umlauten im Javascript String nicht in Frage, da dies nicht mehr XHtml 1.0 strict ist.

Die Frage mit dem BR ist soweit klar :-). Danke schon mal.
Fehlt nur noch: Wie also die Umlaute vom Javascript String auf die Seite bekommen?

grüße
 
Hi,

du könntest die hexadezimalen ASCII-Zahlenwerte der Umlaute verwenden und diesen ein Prozentzeichen (%)
voranstellen. Dann kannst du mit unescape die Zeichen vor der Zuweisung wieder decodieren.
Code:
var objText = document.createTextNode(unescape("%E4, %F6, %FC - %C4, %D6, %DC - %DF"));
document.getElementById("divID").appendChild(objText);
Ciao
Quaese
 
Hi.

Man kann doch in JavaScript Unicodezeichen mit einer speziellen Syntax kodieren, da braucht man nicht umständlicherweise unescape zu verwenden:
Javascript:
var str = "\x22\u04f1";
Gruß

\edit: Hier ist übrigens eine nette Übersicht: http://unicode.e-workers.de/unicode.php Man muss allerdings die angegebene Unicode-Nr. in hexadezimal umrechnen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück