Javascript代码让我发疯,语法错误?

时间:2014-12-27 12:17:21

标签: javascript html

我有以下代码,它说出意外的令牌<,但所有<个符号都在正确的位置。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>

  <script>
  var scores = [84, 99, 91, 65, 87, 55, 72, 68, 95, 42], 
  topScorers = [], scoreLimit = 90;

  for (i=0; i<=scores.length; i++)
  {
    if (scores[i]>scoreLimit)
    {
      <span class="skimlinks-unlinked">topScorers.push(scores</span>[i]);
    }
  }

  <span class="skimlinks-unlinked">console.log(topScorers</span>);
  </script>

</body>
</html>

3 个答案:

答案 0 :(得分:3)

您无法通过<span></span>在JavaScript中创建HTML元素。

如果要创建HTML元素,请使用createElement函数。

var span = document.createElement('span');
span.className = 'skimlinks-unlinked';

现在你可以用你想要的任何信息填充它,然后将它附加到身体上。

span.innerHTML = scores[i];
document.body.appendChild(span);

JSBin Demo

答案 1 :(得分:2)

您的<span>部分中有多个<script />个标签,不应该存在。

这不是PHP:如果你想用JavaScript操作DOM,那么插入/追加元素。

我建议使用像jQuery这样的JavaScript库,因为它可以大大简化DOM操作 jQuery中的示例:

$("body").append('<span class="skimlinks-unlinked">' + topScorers[i] + '</span>');

答案 2 :(得分:0)

在您的代码中,您将JavaScript代码块中的HTML标记混合在一起。只要您在<script> … </script>内,JavaScript的规则就会适用,而且这些字符无效。

这些skimlinks-unlinked内容是某些Wordpress网站上破坏的代码格式化程序的一部分。因此,您可能会从某个地方复制/粘贴代码而不知道它的含义,期望它能够正常工作。不幸的是,代码格式化程序添加了破坏代码的东西。如果删除该标记,代码应按预期工作:

<script>
var scores = [84, 99, 91, 65, 87, 55, 72, 68, 95, 42], 
    topScorers = [], scoreLimit = 90;

for (i=0; i<=scores.length; i++)
{
  if (scores[i]>scoreLimit)
  {
    topScorers.push(scores[i]);
  }
}

console.log(topScorers);
</script>

对于某些背景信息,“skimlinks”似乎是Wordpress网站的广告插件(其中一个自动链接某些流行语的讨厌的插件),并且在代码块中也错误地做了这个,打破了代码。您可以阅读有关该问题的更多信息here