没什么好说的
<html>
<body>
<script>
var x = document.getElementById('btn1');
alert(x);
</script>
<input type="button" id="btn1" value="Clickme" onclick="alert('1')" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
警报消息null而不是包含对象详细信息或类似内容的消息.
问题是什么?
Dar*_*rov 25
把你的脚本放在实际元素之后,否则当你的javascript代码运行时,DOM中还没有这样的元素.
<html>
<body>
<input type="button" id="btn1" value="Clickme" onclick="alert('1')" />
<script>
var x = document.getElementById('btn1');
alert(x);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
或者将脚本放在DOM ready事件中,以确保浏览器在尝试操作DOM之前完全加载DOM:
<html>
<body>
<script>
window.onload = function() {
var x = document.getElementById('btn1');
alert(x);
};
</script>
<input type="button" id="btn1" value="Clickme" onclick="alert('1')" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
你需要在html读取/渲染后运行javascript ...
试试这个:
<html>
<body>
<input type="button" id="btn1" value="Clickme" onclick="alert('1')" />
<script>
var x = document.getElementById('btn1');
alert(x);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
或者您可以添加窗口加载功能,以便脚本仅在页面加载后运行.喜欢:
<html>
<body>
<script>
window.onload = function(){
var x = document.getElementById('btn1');
alert(x);
}
</script>
<input type="button" id="btn1" value="Clickme" onclick="alert('1')" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)