为什么可以';头部选择中的javascript代码是否获取元素?
我用javascript编写pi计算器已经有很长一段时间了,我终于完成了。问题是,我在标题部分的脚本:为什么可以';头部选择中的javascript代码是否获取元素?,javascript,Javascript,我用javascript编写pi计算器已经有很长一段时间了,我终于完成了。问题是,我在标题部分的脚本: document.getElementById("button").addEventListener('click', (function(){ alert('Beginning…'); }), false); 在我的身体部分有这样的内容: <input type="button" id="button" value="Calculate!!"/> 但是当我打开网页
document.getElementById("button").addEventListener('click', (function(){
alert('Beginning…');
}), false);
在我的身体部分有这样的内容:
<input type="button" id="button" value="Calculate!!"/>
但是当我打开网页时,我得到了以下错误:“null不是一个对象,正在计算document.getElementById(“按钮”).addEventListener”
有人知道我的代码为什么不能正常运行吗
谢谢。将其包装在窗口上
onload
事件:
window.onload = function()
{
document.getElementById("button").addEventListener('click', (function(){
alert('Beginning…');
}), false);
};
或
或者,如果脚本不必在标题中,则将其放在id为按钮的元素之后。
Javascript会尽快执行,因此当它位于head标记中时,文档尚未完全加载。当文档准备就绪时,您可以使用load命令运行代码
window.addEventListener("load", function(){
/*your code here*/
});
我想window应该是正确的方法,即使人们认为document.load会在那里(“当文档加载时,执行此操作”,而不是“当窗口加载时执行此操作”)
或者在正文末尾运行代码。您仍然可以将所有方法保存在头脑中。您有两种选择:
窗口中包装代码。onload
事件
放在车身底部
正前方该元素在页面上尚不存在。为了避免这种情况,请考虑将您的<代码> <代码>移动到您的身体底部(即<代码> <代码>),要么执行<代码> Windows .OnLoad=函数()/<代码>,要么将其添加到关闭<代码> <代码>标签之后。@ PATTMORTER在关闭<代码> <代码>标签之前。除了
@War10ck之外,不应该在
之后添加任何内容。因为它位于页面的头部,javascript应该能够找到元素。@Progo不正确。仅当它包装在onload
事件中时。JavaScript被加载并立即解析。这将停止HTML的加载/呈现,直到JavaScript解析完成。(也就是说,当JavaScript解析时,元素将不会加载到页面上)这绝对是一个可能的解决方案,+1你知道,我忍不住想知道为什么这个答案最近被否决了。@ManofSnow是的,现在我可以了,它说我必须等几分钟,然后我就睡着了。
window.addEventListener("load", function(){
/*your code here*/
});