这是我的代码:

<!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!”。但我不明白为什么它不起作用。

最佳答案

因此,您的代码尝试访问尚未呈现的元素。为了解决此问题,您可以使用以下代码:

window.addEventListener('load', function() {
    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
}, false);


Link to fiddle.

因此,在此代码中,我们为Windows load事件附加了事件侦听器。完成窗口加载(所有元素由浏览器呈现)后,将触发此事件。

关于javascript - Javascript:textContent和getElementsByTagName在我的代码中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26184904/

10-12 12:38