2009-04-17 60 views
0

我需要輸出具有HTML代碼中有一個JavaScript變量的內容:輸出使用的innerHTML

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

我想將它添加到對象的innerHTML使用在頁面上。我該怎麼做 ?

回答

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

這是假設你通過getElementById()得到你的元素;有很多方法可以在JavaScript中獲取元素,比如getElementsByTagName()(它返回一個元素數組)或者通過偵聽傳入自身的元素上的事件作爲參數。

此外,你加載串入jsVar的方式目前不會工作。你要麼需要把它都在同一行,或連接多個字符串,象下面這樣:

// 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

我得到一個未終止的字符串例外。如何刪除換行符,空格等? – Iris 2009-04-17 17:31:13

+0

如果你按照上面寫的方式加載jsVar,那麼你得到的錯誤是因爲字符串被定義在多行上。您需要在一行上定義整個字符串,或者在每行上連接多個字符串。我會編輯我的答案,告訴你如何。 – 2009-04-17 17:36:24

0

另外請注意,你必須在JavaScript中使用\n,而不是換行的:

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

如果你不這樣做,你會得到一個「unterminated string literal」的錯誤。

+0

這樣做..replacing所有符合\ n – Iris 2009-04-17 17:39:40

0

你分配,不能跨越多行的字符串:

這不起作用

ttt = "ab 
c"; 

但這

ttt = "ab" + 
     "c"; 

最好將逃逸所有的特殊字符和擺脫你的字符串中的換行符(我不喜歡用''完成的字符串,雖然這是個人的東西:)。

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