innerHTML不打印任何东西

时间:2016-01-20 08:20:24

标签: javascript innerhtml

我正在尝试一些考试的东西而且我不能让它发挥作用。这很简单,我无法理解为什么不工作。

class First
{
public: 
    void initialize() { initialized = init(); }

protected: 
    virtual bool init() = 0;
    bool initialized;
};

class Second : public First
{
public:
    bool init() { return (*something*); }
};

我知道<!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> 将显示未定义。

3 个答案:

答案 0 :(得分:3)

问题是你在呈现DOM之前调用函数。所以result不可用。在身体后移动你的脚本。

&#13;
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

Necesitas un onload para que funcione pues llamas el getElement By Id,antes de que existsa el elemento y no tiene sentido。 Ademas tu salida debe ser un string。

你需要一个&#34; onload&#34;对于这种情况的函数,因为你在元素之前声明你的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>

答案 2 :(得分:0)

使用Sums时,建议添加parseInt, 这样你也可以添加var result = suma('3', 5);并返回8,如果你没有parseInt并解析string '3'它会连接它并返​​回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>";