无法将属性'innerHTML'设置为null,卡住

时间:2017-05-10 10:02:59

标签: javascript

当我按下h1标签时,我正在尝试更改

文本。这是我的HMTL代码:

   <DOCTYPE HTML>
<html>
    <head>
        <title>Javascript</title>
    </head>
    <body>
        <h1 id="tittel" title=“Når denne klikkes på, endres avsnittet”>Tittel </h1> <p id=”første” title=“Når denne klikkes på, sentreres tittelen”> Første avsnitt: original versjon.</p> 

    </body>
    <script src="2103.js"></script>
</html>

和JS:

var h1 = document.getElementById("tittel");
var avsnitt = document.getElementById("første");


function changeText() {
    avsnitt.innerHTML = "Første avsnitt: endret versjon";
}

h1.addEventListener("click", changeText());

1 个答案:

答案 0 :(得分:1)

您需要将changeText指定为回调,而不是在使用addEventListener时调用它:

h1.addEventListener("click", changeText);

当您的代码到达changeText()部分时,它将调用该函数,返回undefined(因为该函数没有返回值),并且不会注册回调。

addEventListener的工作方式是期望提供一个函数(作为参考或文字) - 但在这里你要给undefined

这就是上述原因的原因。它也可以使用函数文字:

h1.addEventListener("click", function() { changeText(); });