can';不要使用javaScript setInterval方法

can';不要使用javaScript setInterval方法,javascript,Javascript,我不能用这个方法,我不知道为什么。 这个脚本有什么问题,单击“停止”后,它不会在文本字段中显示计数器i的结果 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title&g

我不能用这个方法,我不知道为什么。 这个脚本有什么问题,单击“停止”后,它不会在文本字段中显示计数器i的结果

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <title>test_setInterval</title>

        <script type="text/javascript">
            var i = 0;
            var interval;

            function start ()
            {
                interval = document.setInterval("i++", 1000);
            }

            function stop ()
            {
                document.clearInterval(interval);
                output.value = i;
            }
        </script>

    </head>

    <body>
        <input id="output" type="text" />
        <input id="start" type="button" value="start" onclick="start()" />
        <input id="stop" type="button" value="stop" onclick="stop()" />
    </body>
</html>

测试设置间隔
var i=0;
var区间;
函数启动()
{
interval=document.setInterval(“i++”,1000);
}
功能停止()
{
文件.clearInterval(interval);
输出值=i;
}

根据定义,setInterval()方法以指定的间隔(以毫秒为单位)调用函数或计算表达式,其窗口的方法不是文档的方法

 <script type="text/javascript">

                var i = 0;
                var interval;

                function start ()
                {
                    interval = window.setInterval("i++", 1000);
                }

                function stop ()
                {
                    document.clearInterval(interval);
                    output.value = i;
                }

            </script>

var i=0;
var区间;
函数启动()
{
interval=window.setInterval(“i++”,1000);
}
功能停止()
{
文件.clearInterval(interval);
输出值=i;
}
  • clearInterval
    setInterval
    是窗口方法,而不是文档方法。您可以将它们称为
    window.clearInterval
    或只是
    clearInterval
  • 最好使用函数作为setInterval的第一个参数,而不是代码中的字符串,因为

  • 这是一个正在运行的演示

    您必须将i++封装在函数中。
    另外,删除文档。在设置间隔之前。
    现在,小心这有一个bug。如果按“开始”两次,
    i
    每秒将上升两个单位。
    通过在start函数中添加另一个
    clearInterval
    解决了该错误


    这仍然不起作用,setInterval将有
    1
    作为第一个参数,而不是递增
    i
    的方法。
        function start ()
        {   
            clearInterval(interval);
            interval = setInterval(function(){++i;}, 1000);
    
        }
    
        function stop ()
        {
            clearInterval(interval);
            output.value = i;
        }