innerHTML 不打印任何东西

innerHTML not printing anything

我正在为考试尝试一些东西,但无法让它发挥作用。这真的很简单,我不明白为什么不起作用。

<!DOCTYPE html>
<html>
<head>
    <title>Exercici 2</title>
    <script type="text/javascript">
        //rep 2 paràmetres d'entrada i els suma
        function suma(a, b) {
            alert(arguments.length);
            //donaria undefined, ja que no existeix el argument amb índex 2, tindria que ser [1]
            alert(arguments[2]);
            //3 + 5 = 8
            return a + b;
        }

        var result = suma(3,5);
        document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
    </script>
</head>
<body>
    <div id="result">
    </div>
</body>
</html>

我知道alert(arguments[2]);会显示undefined。

问题是您在呈现 DOM 之前调用函数。所以 result 不可用。将你的脚本移到正文之后。

<html>

<head>
  <title>Exercici 2</title>

</head>

<body>
  <div id="result">
  </div>
</body>

<script type="text/javascript">
  //rep 2 paràmetres d'entrada i els suma
  function suma(a, b) {
    //3 + 5 = 8
    return a + b;
  }

  var result = suma(3, 5);
  document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
</script>

</html>

使用求和时,建议添加 parseInt, 这样你也可以添加 var result = suma('3', 5); 它会 return 8,如果你没有 parseInt 并且你解析一个 string '3' 它会连接它并且会 return 35

  function suma(a, b) {
    //3 + 5 = 8
    return parseInt(a) + parseInt(b);
  }

  var result = suma(3, 5);
  document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";

您需要一个 onload 才能使其工作,因为您在元素存在之前通过 Id 调用了 getElement 并且它没有意义。另外你的输出必须是一个字符串。

对于这种情况,您需要一个 "onload" 函数,因为您在元素之前声明了 getElemetnById,并且函数中的输出也应该是一个字符串。

<script type="text/javascript">
    //rep 2 paràmetres d'entrada i els suma
    function suma(a, b) {
        //a = argumento 0, b = argumento 1
        return (a + b).toString();
    }
    //estas ejecutando esto, sin antes existir el id="result", por tanto debes esperar
    // aque primero se cree, y luego ejecutar, eso se hace añadiendo esto:

    window.onload = function(){ //espera a que todos los elements html se creen.
            var result = suma(3,5);
            document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
     }

</script>