这是我的代码:
<!DOCTYPE html>
<html>
<head>
<title> sample </title>
<script>
var para = document.getElementsByTagName("p")[0]; // First <p> in the document
var text = para.textContent; // Text is "This is a simple document."
para.textContent = "Hello World!"; // Alter paragraph content
</script>
</head>
<body>
<p> This is a simple document. </p>
</body>
</html>
根据我用来学习 javascript 的书,这应该将
标记内的文本更改为“Hello World!”但我不明白为什么它不起作用。
最佳答案
脚本在任何 p
之前运行页面上存在元素。您应该将脚本移动到 </body>
之前.
顺便说一句:其他答案建议绑定(bind)到 load
事件。 load
事件在所有图像、外部资源和 iframe 都加载完毕后触发,这对于本例来说确实不是必需的。 readystatechange
或 domcontentloaded
事件会更合适(相当于 jQuery 的 ready
事件),它在 DOM 完成加载时和 load
之前触发。会开火。只需将脚本移至页面底部即可获得完全相同的效果,而无需引入更多代码,而且运行速度更快。
关于Javascript:textContent 和 getElementsByTagName 在我的代码中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26184904/