前几天我在试验 javascript,想看看某个函数是否可以工作。所以我做了我的HTML:
<body>
<p id="paragraph"></p>
</body>
(当然,在实际文档中我已经设置了我的文档类型并创建了 html 标签等等)
然后写了我的javascript(正确链接到头部):
(function(){
document.getElementById("paragraph").innerText = "Hi there!";
}());
现在,我打开了我的 html,有点困惑为什么我<p>
没有包含任何文本,所以我想也许IIFE没有在页面加载时运行,所以我尝试了其他方法:
(function(){
console.log("Hi there!");
}());
再次打开,发现当时 javascript 运行良好;控制台像往常一样打印了“Hi There”。我现在有点困惑,所以我尝试了:
window.onload = function(){
document.getElementById("paragraph").innerText = "Hi there!";
}
这一切都很完美!该段落包含“您好”,就像它第一次应该(嗯,我想是这样)一样!
谁能解释这种荒谬的行为?为什么不(function(){/*stuff*/}());
工作.innerText
?