脚本在
document.getElementByName("myname").innerHTML = 'Whats';
行失败,因为 getElementByName
不是函数,当脚本尝试调用它时会出错。正确的名字是getElementsByName
;元素s。 getElementsByTagName
同样。
此外,这两个函数都返回元素列表而不是单个元素。因此,在这里,您想要使用
[0]
来获取该列表中的第一个元素,然后以这种方式使用它:
document.getElementsByName("myname")[0].innerHTML = 'Whats';
使用 F12 或 Ctrl+Shift+I(取决于浏览器)打开浏览器控制台以查看错误,并查阅文档(例如,来自我链接的网站)以确保您正在使用正确的功能。
修改如下,就可以了
document.getElementById("myid").innerHTML = 'hey';
document.getElementsByName("myname")[0].innerHTML = 'Whats';
document.getElementsByTagName("p")[0].innerHTML = 'up! ';
document.querySelector("p#myid").innerHTML = 'Dude.';
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {
debugger;
document.getElementById("myid").innerHTML = 'hey';
document.getElementsByName("myname").innerHTML = 'Whats';
document.getElementsByTagName("p").innerHTML = 'up! ';
document.querySelector("p#myid").innerHTML = 'Dude.';
}
</script>
</head>
<body>
<p id="myid" name="myname">This text will be changed after button click.</p>
<button onclick="myFunction()">Try it</button>
</body>
</html>
这里你写了 document.getElementByName("myname").innerHTML = 'Whats'; 这是不正确的,它必须是 document.getElementsByName("myname").innerHTML = 'Whats';试试这个它有效。 仅供参考 document.getElementsByName 返回具有相同名称的元素数组。
我确信
document.querySelectorAll
、document.getElementsByClassName
和 document.getElementsByTagName
将返回一个 NodeList 对象。但是, document.querySelector
应返回给定上下文(文档)中该元素的第一个匹配项。