当我按下 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());
最佳答案
您需要将 changeText
分配为回调,而不是在使用 addEventListener
时调用它,如下所示:
h1.addEventListener("click", changeText);
当您的代码到达 changeText()
部分时,它将调用该函数,返回 undefined
(因为该函数没有返回值)并且回调将不会被注册.
addEventListener
的工作方式是期望给出一个函数(作为引用或文字) - 但在这里你给出的是未定义
。
这就是上面的方法起作用的原因。它也可以与函数文字一起使用:
h1.addEventListener("click", function() { changeText(); });
关于javascript - 无法设置 null 的属性 'innerHTML',卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43889265/