javascript - 无法设置 null 的属性 'innerHTML',卡住

标签 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());

最佳答案

您需要将 changeText 分配为回调,而不是在使用 addEventListener 时调用它,如下所示:

h1.addEventListener("click", changeText);

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

addEventListener 的工作方式是期望给出一个函数(作为引用或文字) - 但在这里你给出的是未定义

这就是上面的方法起作用的原因。它也可以与函数文字一起使用:

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

关于javascript - 无法设置 null 的属性 'innerHTML',卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43889265/

相关文章:

javascript - CSS/JS 动态缩小? (表现)

javascript - 在 Javascript 中将数字转换为字符串时是否存在错误?

javascript - 单选按钮和 JavaScript,输出错误

javascript - WebRTC Chrome 和 Firefox connection.setRemoteDescription

javascript - 使用 WordPress 默认音频播放器播放音频自定义起点和终点

Javascript 将宽度和高度转换为字体大小

javascript - 单击切换到不同的按钮

javascript - Vue.js + axios = 数据未更新

javascript - vue显示隐藏对象属性设计

javascript - Firebase Functions 错误 : . once is not a function