2016-04-21 12 views
0

Überall, wo ich gesucht habe, habe ich nur Möglichkeiten gefunden, einen Textknoten nach dem Erstellen eines neuen Elements anzuhängen. Zum Beispiel werden sie ein neues Absatzelement (p) erstellen und anschließend den Textknoten an diesen neuen Absatz anhängen. Aber ich möchte einen Textknoten zu einem bestehenden Element hinzufügen (in meinem Fall eine leere Spanne).So erstellen Sie Text und fügen Text an ein vorhandenes Element an, z. leere Spannweite?

Link zu Code zum Beispiel und Klärung http://pastebin.com/K1EBMr4Z

<span class="span"></span> <!-- append textnode here --> 
function newFunction(){ 
    var textnode = document.createTextNode("OK"); 

    // Append my `textnode` to the empty span here 
} 

Vielen Dank im Voraus

+0

Das ist einfach, zielen Sie auf diese Spanne und append -> 'document.querySelector ('. Span'). AppendChild (neues_element)' – adeneo

+0

Verwenden Sie jquery und nachdem Sie jetzt, dass span erstellt wurde, legen Sie seinen Wert ok von Klassen! –

+0

Sie sollten definitiv mehr jQuery verwenden, es macht alle Dinge. – adeneo

Antwort

0

Wie im Kommentar erwähnt, können Sie hinzufügen der Textknoten als untergeordnetes Element der Spannweite mit der Methode appendChild().

Für Text können Sie auch einfach die innerHTML Eigenschaft der Spannweite festlegen.

Beide Beispiele in einem Behälter:

function newFunction(){ 
    var span = document.getElementById('my-span'); 
    var otherSpan = document.getElementById('my-other-span'); 

    span.innerHTML = 'Yo this is text'; 

    var textNode = document.createTextNode("OK"); 
    otherSpan.appendChild(textNode); 
}; 

newFunction(); 

https://jsfiddle.net/9pmhan8L/1/

+0

ist es möglich, dies zu tun, indem man eine Klasse oder einen Tagnamen anstelle einer ID auswählt? – kensington

+0

Absolut möglich. Ersetzen Sie 'document.getElementById ('my-span');' mit 'document.querySelector ('. Span')', um das erste Element mit 'class =" span "' oder mit 'document.querySelector ('span') zu erhalten. 'um das erste' 'Element zu erhalten. –

1

Es ist ganz einfach. Verwenden Sie die appendChild-Methode.

function newFunction(){ 
    var textnode = document.createTextNode("OK"); 
    document.querySelector(".span").appendChild(textnode); 
} 
0

Wenn Sie die Spanne eine ID geben, können Sie es mit document.getElementById() und dann innerhalb dieses Element die HTML ändern. Here's ein Link zu einer SO, die das tut. Hier sind auch einige Dokumente für innerHTML und getElementByID.

-1

Warum nicht jQuery verwenden:

$('span').text('text'); 

oder

$('span').html('<p>text</p>'); 

Wenn Sie ihn nicht verwenden, zu verwenden:

document.getElementsByTagName('span').innerHTM = '<p>text</p>'; 
+0

Weil es nicht mit jQuery, offensichtlich, das ist, warum! – adeneo

+0

Asker sagt nicht, dass sie jQuery geladen haben. –

0

Sie müssen den Knoten Sie die textNode zum ersten anhängen möchten. Hängen Sie dann den textNode an den ausgewählten Knoten an (in Ihrem Fall das Element .span).

<span class="span"></span> 
function newFunction(){ 
    var textnode = document.createTextNode("Hello World!"); 

    // Select your existing element 
    var empty_span = document.querySelector('.span'); 

    // Append the element 
    empty_span.appendChild(textnode); 
} 

newFunction(); 

Example jsFiddle auch.