2

我是一个对 Javascript 和 html 知识有限的初学者,如果我的问题非常基本,请见谅。我正在尝试编写一个基本网页,当单击按钮时,它将使用 Javascript 对数组执行某些操作,然后将结果打印到页面上。

<!DOCTYPE html>
//error here
<html>
<head>
<title>Thursday's Homework</title>
<script>
    var problem1 = function() 
    {for (var i = 0; i <= 50; i += 5) {
        document.write(i + " ");
        }
    }   
    var myArray = []
    var problem2 = function()
        {for (var i = 0; i <= 9; ++i){
            myArray[i]
            }
        document.write(myArray)     
</script>
</head>
<body>
<center><h2><b> My Homework for Thursday<b></h2></center>
<p>This is my code for Problem 1:</p>
<input type="button" onclick = "problem1()" value="Does it work?">
//error here
<p>This is my code for Problem 2:</p>
<input type="button" onclick = "problem2()" value="Does it work?">
//error here
</body>
</html>

当我使用开发人员工具在 Chrome 中调试时,我收到三个错误消息: 第 1 行之后:未捕获的 SyntaxError:输入的意外结束 第 22 行之后(第一个按钮):未捕获的 ReferenceError:问题 1 未定义 第 24 行之后(第二个按钮):未捕获的引用错误:未定义问题2

我还想知道是否有更好的方法来显示输出,document.write因为这样会导致每次都需要重新加载页面才能看到下一个结果。

我是新来的,所以如果这是完全错误的方式来创建整个事情,我深表歉意。如果是这样,请指出我正确的方向。

更新:我已经修复了语法错误并且运行良好。我仍然想知道一种更好的方法来显示我的结果document.write。我不是很了解,所以如果你有一个建议,你能给我一个如何实现它的想法吗?

4

4 回答 4

2

您在问题 2 之后缺少一个结束 }。

这是导致此类错误的最常见原因。由于函数体未正确关闭,JS 解释器中断,停止解析。然后其他东西试图引用一个无法解析并触发引用错误的变量/函数。

于 2013-05-23T02:27:15.270 回答
1

我可以看到一些问题。

  1. 你错过了一个结束}之后problem2
  2. 你的=for周围有空格onclick =
  3. 你实际上并没有对 myArray 做任何事情。这似乎不是故意的。
  4. 您的代码格式不清楚,这可能会导致以后遇到困难(我认为这部分导致了错误)。除非您有特别充分的理由,否则您应该避免使用{for. 而是在{.
于 2013-05-23T02:23:11.607 回答
0

至于你的第二个问题,你可以找到很多有用的 Chrome 和 Firefox 扩展,可以满足你的调试需求。

Chrome 具有内部工具,例如“Web 控制台”,可让您查看变量。

于 2013-05-23T07:36:59.403 回答
0
  1. 关闭问题2()的大括号;
  2. 而不是 document.write(); 你可以指定一个像

    或者

并在js中使用

document.getElementById("abc").innerHTML=i+" ";

为了更好、更安全的编码,请使用 jsLint ..

于 2013-05-23T02:26:33.613 回答