3

我在使用 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 做一些事情吗?

提前致谢!

4

3 回答 3

5

Unterminated string literal通常意味着你试图做这样的事情:

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或类似内容)之前

于 2012-09-17T15:04:25.213 回答
0

问题可能是您使用的花哨的引号('和')。尝试用 '.

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

于 2012-09-17T15:07:57.293 回答
0

看起来文本中有回车符。

如果你有机会,也许在分配之前把它们换成休息时间

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

br 如果你想保留回报,否则

stringWithReturnsIn.replace(/[\n\r]/g, ' ');
于 2012-09-17T15:04:44.540 回答