开发者问题收集

使用 javascript 将 html 插入到 div 中

2012-09-17
6160

我在使用 javascript 更新 div 时遇到问题。

<script>
document.getElementById('advertisingBrandValues').innerHTML = "<p>The Mac is the most powerful   creative tool in the world, giving users unbridled potential to make everything from     bespoke family albums to industry-standard pop songs – iCreate is the key to unlocking that potential. Accessible, smart and authoritative, the iCreate brand thrives on the mantra ‘instruct, inform, inspire’, helping thousands of Mac users realise their creative ambitions.</p>";                   

</script>

<div id="advertisingBrandValues"></div>

我不断收到以下错误:

未终止的字符串文字 并且它表明错误出在第一个 P 标签上

我需要对传递给 innerHTML 函数的 HTML 做些什么吗?

提前致谢!

3个回答

未终止的字符串文字 通常意味着您尝试执行如下操作:

var str = "Blah blah blah
  more blah that should be part of the string
  even more blah.";

您无法在 JavaScript 中执行此操作,您必须结束字符串并附加下一行:

var str = "Blah blah blah\n"
  +"more blah that should be part of the string\n"
  +"even more blah.";

或者您可以转义换行符(不确定这是否完全标准):

var str = "Blah blah blah\
  more blah that should be part of the string\
  even more blah.";

另请注意,您尝试修改的元素尚未定义。确保您尝试修改的 <div> 位于 <script> 之前,或者推迟脚本或其内容( window.onload 或类似方法)

Niet the Dark Absol
2012-09-17

问题可能在于您使用的花哨引号(‘ 和 ’)。尝试用 ' 替换它们。

由于解析错误数量和潜在的 XSS 漏洞,像这样将 HTML 插入页面通常不是好做法。考虑使用 document.createElement() 创建内部元素,并在子元素中附加文本内容。这有点冗长,但假设结构保持不变,修改起来更加无缝。

Jeffrey Sweeney
2012-09-17

看起来文本中有回车符。

如果有机会,也许可以在分配之前将它们替换为换行符

stringWithReturnsIn.replace(/[\n\r]/g, '<br />');

如果您想保留回车符,请使用 br

stringWithReturnsIn.replace(/[\n\r]/g, ' ');
nat
2012-09-17