Hinzufügen von Text zu einem vorhandenen Textelement in JavaScript über DOM
Lesezeit: 3 Minuten
Benny Thadikaran
Ich versuche herauszufinden, wie man Text zu a hinzufügt p Etikett bzw h1 -Tag, das bereits einen Textknoten hat.
Zum Beispiel:
var t = document.getElementById("p").textContent;
var y = document.createTextNode("This just got added");
t.appendChild(y);
<p id="p">This is some text</p>
Dieser Code gibt einen Fehler aus appendChild ist keine Funktion. Die meisten Hilfeseiten erstellen zunächst a p Tag und fügen Sie dann den Text an.
Wie füge ich Text richtig zu einem bestehenden Textelement hinzu?
PS: Ich habe verwendet innerHTML vorher tun, aber zu Lernzwecken möchte ich es hier vermeiden.
Der Grund dass appendChild ist keine Funktion, weil Sie sie auf der ausführen textContent von dir p Element.
Sie müssen stattdessen nur den Absatz selbst auswählen und dann Ihren neuen Textknoten daran anhängen:
var paragraph = document.getElementById("p");
var text = document.createTextNode("This just got added");
paragraph.appendChild(text);
<p id="p">This is some text</p>
Wenn Sie möchten, können Sie jedoch stattdessen einfach den Text selbst ändern (anstatt einen neuen Knoten hinzuzufügen):
var paragraph = document.getElementById("p");
paragraph.textContent += "This just got added";
<p id="p">This is some text</p>
Soweit ich sehen kann, können keine HTML-Tags eingefügt werden, oder sie werden als Zeichenfolgen analysiert. Ich vermute also, der beste Weg wäre, br-Tags oder so zu erstellen und sie anzuhängen?
– Benny Thadikaran
20. Januar 2017 um 13:26 Uhr
Wofür willst du einen Zeilenumbruch, @BennyThadikaran? Wenn sie zwei Textteile trennen sollen, sollten Sie zwei verwenden p Stichworte. Zeilenumbrüche sollten sparsam verwendet und nicht zum Formatieren von Text verwendet werden.
– James Monger
20. Januar 2017 um 13:36 Uhr
Können Sie mir sagen, wie ich den Inhalt davor hinzufügen kann?
– tkamath99
5. Februar 2020 um 8:00 Uhr
@tkamath99 paragraph.textContent = "This just got added before " + paragraph.textContent;
– James Monger
14. Februar 2020 um 9:03 Uhr
Anstatt ein Element anzuhängen, können Sie es einfach tun.
document.getElementById("p").textContent += " this has just been added";
document.getElementById("p").textContent += " this has just been added";
<p id ="p">This is some text</p>
Die Methode .appendChild() wird verwendet, um a hinzuzufügen neues Element KEINEN Text zu einem bestehenden Element hinzufügen.
Beispiel:
var p = document.createElement("p");
document.body.appendChild(p);
Der Standardansatz dafür ist die Verwendung .innerHTML(). Wenn Sie jedoch eine alternative Lösung wünschen, können Sie versuchen, diese zu verwenden element.textContent.
Beispiel:
document.getElementById("foo").textContent = "This is som text";