2009-04-17 55 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>";