为什么下面这段代码不起作用?
<!DOCTYPE html>
<html>
<body>
<h1 onclick="changeText(demo)">Click on this text!</h1>
<h2 id="demo" >this text is to be changed</h2>
<script>
function changeText(id) {
document.getElementById("id").innerHTML = "Ooops!";
}
</script>
</body>
</html>
我在不同的浏览器中试过这个但是 它不起作用?
答案 0 :(得分:2)
如果你看到你的控制台,它会告诉你到底发生了什么。
始终始终检查JavaScript控制台。
document.getElementById("id").innerHTML = "Ooops!";
正在寻找名为id
document.getElementById("demo").innerHTML = "Ooops!";
编辑:
重新阅读您想要的代码
document.getElementById(id).innerHTML = "Ooops!";
请注意,它不使用引号,因此它将使用传递的值。
除此之外,这也不起作用..因为您的语法调用已关闭。所以你真的想要这个:
<!DOCTYPE html>
<html>
<body>
<h1 onclick="changeText('demo')">Click on this text!</h1>
<h2 id="demo" >this text is to be changed</h2>
<script>
function changeText(id) {
document.getElementById(id).innerHTML = "Ooops!";
}
</script>
</body>
</html>
答案 1 :(得分:0)
您需要按id
值来调用它,而不是单词id,在您的示例中id
值为demo
,您需要将其更改为:
document.getElementById("demo").innerHTML = "Ooops!";
或者,您可以像这样编写HTML和JS代码:
var title = document.getElementById("clickMe");
title.addEventListener('click',function() {
document.getElementById("demo").innerHTML = "Ooops!";
});
&#13;
<h1 id="clickMe">Click on this text!</h1>
<h2 id="demo">this text is to be changed</h2>
&#13;
答案 2 :(得分:0)
当您将id
传递给函数但您将其用作HTML控件ID时。不要在发票中保留身份证明
function changeText(id) {
document.getElementById(id).innerHTML = "Ooops!";
}
如果你想知道你在哪里犯错误,另一个调试方法是
debugger
保留在changeText
功能<h1>
标记