2009-04-17 9 views
0

Ich brauche den Inhalt einer Javascript-Variable Ausgang, der HTML-Code in sich hat:Output innerHTML- mit

var jsVar = '<div> 
<p> Sample text </p> 
<img src="some image.jpg" alt="" /> 
<div>'; 

Ich möchte es auf der Seite zu einem Objekt hinzufügen innerHTML- verwenden. Wie mache ich es ?

Antwort

2
var element= document.getElementById("elementID"); 
element.innerHTML = someHTMLstring; 
2
document.getElementById('id').innerHTML = jsVar; 
4
var element = document.getElementById("myElementId"); 
element.innerHTML = jsVar; 

Dies wird vorausgesetzt, Sie das Element über die getElementById() erhalten; Es gibt viele Möglichkeiten, Elemente in JavaScript zu erhalten, z. B. getElementsByTagName() (die ein Array von Elementen zurückgibt) oder Ereignisse auf Elementen, die sich selbst als Argument übergeben.

Auch die Art, wie Sie die Zeichenfolge in jsVar laden, wird derzeit nicht funktionieren. Sie müssen entweder alles auf eine Linie zu bringen, oder mehrere Strings verketten, wie unten:

// Method 1 
var jsVar = '<div><p> Sample text </p><img src="some image.jpg" alt="" /><div>'; 

// Method 2 
var jsVar = '<div>' + 
    '<p> Sample text </p>' + 
    '<img src="some image.jpg" alt="" />' + 
    '<div>'; 
+0

Ich bekomme eine nicht abgeschlossene Zeichenfolge Ausnahme. Wie entferne ich die Zeilenvorschübe, Leerzeichen usw.? – Iris

+0

Wenn Sie jsVar wie oben beschrieben laden, liegt der Fehler darin, dass die Zeichenfolge über mehrere Zeilen definiert wird. Sie müssen entweder die gesamte Zeichenfolge in einer Zeile definieren oder mehrere Zeichenfolgen in jeder Zeile verketten. Ich werde meine Antwort bearbeiten, um Ihnen zu zeigen, wie. –

0

Beachten Sie auch, dass Sie \n verwenden anstelle von Zeilenumbrüchen in JavaScript werden müssen:

var jsVar = '<div>\n<p> Sample text </p>\n<img src="some image.jpg" alt="" />\n<div>'; 

Wenn Sie tun dies nicht, Sie erhalten einen "unterminated string literal" Fehler.

+0

ja .. ich habe Probleme, das zu tun ... ersetzen alle Zeilenvorschübe mit \ n – Iris

+0

Wenn Sie innerHTML tun, müssen Sie nicht die '\ n's haben, weil sie dann überflüssig sind. –

+0

Sie haben Recht, aber es ist immer noch eine gute Praxis, IMHO. – moff

0

Die Zeichenfolge Sie zuordnen, können nicht über mehrere Zeilen erstrecken:

nicht

ttt = "ab 
c"; 

funktioniert das nicht

ttt = "ab" + 
     "c"; 

besten alle Sonder würde entkommen Zeichen, und loszuwerden Zeilenvorschübe in der Zeichenfolge (Ich mag keine Saiten mit 'gemacht, obwohl es eine persönliche Sache ist :).

var jsVar = "<div><p> Sample text </p> <img src=\"some image.jpg\" alt=\"\" /><div>"; 
+0

Nur einen Kopf hoch, können Sie Ihre eigenen Beiträge bearbeiten, um Ihre Antwort zu erweitern. (Ich tat es nur, um diese Situation zu decken.) –

+0

Könntest du genauer ausführen, wie ich alle Sonderzeichen, , umgehen und Zeilenvorschübe loswerden könnte? Vielen Dank – Iris