0

我已经疯狂地试图解决这个问题。

在我的 javascript 代码中,我定义了一个字符串变量,我在其中以字符串的形式放置了一个 HTML 表。即:

var tData="<table><tbody><tr><a><th>Type</th><th>Score</th><th>Percentile</th></a></tr><tr><td><a>Overall</a></td><td>2.4</td><td>50%</td></tr><tr><td><a>Best 100</a></td><td>2.3</td><td>70%</td></tr></tbody></table>";

现在,我的浏览器(chrome 和 firefox)正在通过字符串读取这个变量赋值,作为带有换行符的 HTML 代码。请看下面的图片以获得更清晰的信息。

如果我删除 html 标签并编写一个简单的字符串,则代码可以正常工作。因此,我可以向您保证,以前没有倒逗号错误(我检查了多次),也没有虚假字符。

在此处输入图像描述

我在这个问题上花了太多时间。请帮我解决这个问题。

编辑

在标题和标签中添加了 Wordpress,因为这是一个 wordpress 问题。

4

4 回答 4

2

由于您的文档是 XHTML,因此您必须将代码包含在 CDATA 部分中:

<script>
<![CDATA[
    // code here
]]>
</script>

这可以防止浏览器<...>将内容中的序列解释为标签。

于 2013-03-11T10:28:57.523 回答
1

如果你想在 JavaScript 中使用多行字符串,你必须取消换行,即

var str = "abc\
de";
于 2013-03-11T10:26:56.117 回答
1

行。尤里卡!!!

我找到了解决办法。我打破了以下字符串:

var tData="<table><tbody><tr><a><th>Type</th><th>Score</th><th>Percentile</th></a></tr><tr><td><a>Overall</a></td><td>2.4</td><td>50%</td></tr><tr><td><a>Best 100</a></td><td>2.3</td><td>70%</td></tr></tbody></table>";

进入

  var tData = "<tab"+"le><tb"+"ody><t"+"r><a><t"+"h>Type</t"+"h><t"+"h>Score</t"+"h><t"+"h>Percentile</t"+"h></a></t"+"r><t"+"r><t"+"d><a>Overall</a></t"+"d><t"+"d>2.4</t"+"d><t"+"d>50%</t"+"d></t"+"r><t"+"r><t"+"d><a>Best 100</a></t"+"d><t"+"d>2.3</t"+"d><t"+"d>70%</t"+"d></t"+"r></tbo"+"dy></ta"+"ble>";

欺骗浏览器。我仍然希望得到一个更好的答案。

于 2013-03-11T11:15:20.047 回答
0
Delete all invisible characters (whitespace) around that area,
then give it another try.

试试这个:

var tData="<table><tbody>";
tData+="<tr><th><a>Type</a></th><th>Score</th><th>Percentile</th></tr>";
tData+="<tr><td><a>Overall</a></td><td>2.4</td><td>50%</td></tr>";
tData+="<tr><td><a>Best 100</a></td><td>2.3</td><td>70%</td></tr>";
tData+="</tbody></table>";

可能重复“意外令牌非法”没有明显原因

于 2013-03-11T10:29:43.113 回答