0

这是 shan,我是一个 javascript 菜鸟,我正在尝试以 qa 代码为例。我正在尝试将一个小的 javascript 内容加载到一个 div 元素,但它不起作用任何帮助都会很好,这里是代码。

<html>
<head>
    <title>
    using d for statement
</title>
<script>
    function displaytext () {
     var loopindex=0;
     var sum=0;
     for (var loopindex=1; loopindex <=100; loopindex++) {
       sum +=loopindex;
     }; 
    document.getElementById('targetdiv').innerhtml="adding 1 to 100 gives "+sum;
    }
</script>
</head>
<body>
    <div id="targetdiv">

    </div>
</body>
</html>
4

2 回答 2

1

您需要调用该函数。等到窗口加载完成也是一个好主意(或者你可以使用一些更高级的 JS 来检测 DOM 就绪状态。):

<html>
<head>
    <title>
    using d for statement
</title>
<script>
    function displaytext() {
     var loopindex=0;
     var sum=0;
     for (var loopindex=1; loopindex <=100; loopindex++) {
       sum +=loopindex;
     }; 
    document.getElementById('targetdiv').innerHTML = "adding 1 to 100 gives "+sum;
    }
    window.onload = function(){
      displaytext();
    }
</script>
</head>
<body>
    <div id="targetdiv">

    </div>
</body>
</html>
于 2013-04-09T01:04:34.817 回答
0

3个问题:

  1. 你从来没有真正调用过这个函数。它只是被声明的。
  2. 该属性是innerHTML 而不是innerhtml。Javascript 区分大小写。
  3. 脚本在一个元素上方是引用。由于脚本在找到时执行(页面构建在执行期间暂停),因此您所指的元素永远不会找到。

此外,您两次声明了 loopindex 变量,我认为这会导致 ES5 严格的语法错误。

<html>
    <head>
        <title>
        using d for statement
        </title>
    </head>
    <body>
        <div id="targetdiv">

        </div>
    </body>
    <script>
        function displaytext () {
         var sum=0;
         for (var loopindex=1; loopindex <=100; loopindex++) {
           sum +=loopindex;
         }; 
        document.getElementById('targetdiv').innerHTML="adding 1 to 100 gives "+sum;
        }
        displaytext();
    </script>
</html>
于 2013-04-09T01:11:30.853 回答