Text über JS in DIV zeigen
GELight
- javascript
Hallo alle zusammen,
Ich übergebe bei einem Mouseover über einer Tabellenzelle ein paar Variablen in eine JS Function. Dort möchte ich diese wiederum in einem DIV Container ausgeben lassen.
Hintereinander geschrieben habe ich alles schon... ich hätte das ganze aber gern mit Umbrüchen formatiert. Vielleicht könnt Ihr mir da helfen?
Mein Script sieht derzeit so aus, wo ich es an den DIV übergebe.
...
...
document.getElementById("infobox").firstChild.nodeValue = kndnr + "\n" + name + "\n" + firma + "\n" + telefon + "\n" + newsletter;
...
...
Leider wirken die \n nicht so recht. Auch \r\n hat keine Wirkung.
Was mache ich falsch?
Mario
Hi,
Leider wirken die \n nicht so recht. Auch \r\n hat keine Wirkung.
Was mache ich falsch?
Was schreibst du denn in den Knoten rein? Richtig, HTML. Wozu dient z.B. \n? Für einen Zeilenumbruch in JavaScript. Wenn du dir das ganze als Datei vorstellst, dann hättest du da jetzt wunderschöne Zeilenumbrüche drin, aber wie du das ja wahrscheinlich von echten HTML-Dateien kennst, bewirken die in der Ausgabe nichts. Ergo, setz stattdessen <br> rein.
MfG
Rouven
Ich habe das gleiche wie ihr beschrieben habt auch schon mit <br>´s versucht. Also so...
document.getElementById("infobox").firstChild.nodeValue = kndnr + "<br>" + name + "<br>" + firma + "<br>" + telefon + "<br>" + newsletter;
In diesem Fall gibt er mir leider die die <br>´s innerhalb des Textes im DIV mit aus.... texttext<br>texttext<br>texttext
Mario
hi,
document.getElementById("infobox").firstChild.nodeValue = kndnr + "<br>" + name + "<br>" + firma + "<br>" + telefon + "<br>" + newsletter;
In diesem Fall gibt er mir leider die die <br>´s innerhalb des Textes im DIV mit aus.... texttext<br>texttext<br>texttext
Natürlich.
.nodeValue: "Speichert den Wert oder Inhalt eines Knotens. Bei Textknoten ist dies der Text, bei Attributknoten der zugewiesene Attributwert. Bei Elementknoten hat diese Eigenschaft den Wert null."
Wenn du also einem Textknoten darüber einen neuen Wert zuweist, wird auch nur Text erwartet und angenommen - und der Text <br> wird dann auch als der Text <br> dargestellt.
Wie Jörg schon sagte: Wenn du ein <br> einfügen willst, musst du auch ein br-Element erzeugen, und als _neuen_ Knoten einhängen.
Aber wenn dir das noch zu hoch ist - benutze doch einfach .innerHTML. dem kannst du einen String, der HTML-Code enthält, zuweisen, der dann auch als solches interpretiert wird.
gruß,
wahsaga
Ahh... super... mit .innerHTML klappt das ganze wunderbar.
Vielen Dank für den TIP.
Irgendwie finde ich Javascript einfach nicht überschaubar wie zB. PHP.
Komme einfach nicht klar damit. Vorallem wenn noch dazu jeder Browser seinen eigenen Sch... macht... :)
Mario
Hallo,
document.getElementById("infobox").firstChild.nodeValue = kndnr + "\n" + name + "\n" + firma + "\n" + telefon + "\n" + newsletter;
Jo, \n wird ja in HTML ignoriert. Der <br>-Tag hingegen wäre Mittel der Wahl. Du müsstest für jeden Zeilenumbruch ein br erzeugen, ungefähr so:
document.getElementById("infobox").appendChild(document.createElement("br"));
Grüsse,
Jörg
Hello out there!
Leider wirken die \n nicht so recht.
Doch, tun sie.
Auch \r\n hat keine Wirkung.
Doch. Es hat die Wirkung, dass ein Zeilenumbruch im Code steht, den der Browser interpretiert. Und dem ist es egal wie viele und welche Whitespace-Zeichen hintereinander folgen, er macht daraus ein Leerzeichen.
Was mache ich falsch?
Du schreibst nicht das, was in HTML als Zeilenumbruch wirkt.
See ya up the road,
Gunnar