没什么好说的,
<html>
<body>
<script>
var x = document.getElementById('btn1');
alert(x);
</script>
<input type="button" id="btn1" value="Clickme" onclick="alert('1')" />
</body>
</html>
警告消息为null
,而不是包含对象详情或类似内容的消息。
有什么问题?
答案 0 :(得分:23)
将你的脚本放在实际元素之后,否则当你的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>
或者将您的脚本放在DOM ready事件中,以确保浏览器完全加载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>
答案 1 :(得分:6)
您需要在 html s读取/呈现后运行javascript ...
请改为尝试:
<html>
<body>
<input type="button" id="btn1" value="Clickme" onclick="alert('1')" />
<script>
var x = document.getElementById('btn1');
alert(x);
</script>
</body>
</html>
或者您可以添加窗口加载功能,以便脚本仅在页面加载后运行。像:
<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>
答案 2 :(得分:0)
这是因为您试图在文档的dom中创建之前访问按钮信息。将脚本放在正文的末尾,如下所示
<html>
<body>
<input type="button" id="btn1" value="Clickme" onclick="alert('1')" />
<script>
var x = document.getElementById('btn1');
alert(x);
</script>
</body>
</html>
答案 3 :(得分:0)
Javascript代码从上到下运行。在alert(x)
行中,还没有input#btn1
。
您可以使用:
window.onload = function() {
var x = document.getElementById('btn1');
alert(x);
}
答案 4 :(得分:0)
<script type="text/javascript">
function call()
{
var x = document.getElementById('btn1').value.trim();//or use "=<%btn1.ClientID%>"
alert(x);
}
</script>
将此功能onClientClick
发送到您的按钮。
答案 5 :(得分:0)
首先执行script
时,dom中没有加载id为#btn1
的元素。因此在加载元素后执行script
。
像这样,
<input type="button" id="btn1" value="Clickme" onclick="alert('1')" />
<script>
var x = document.getElementById('btn1');
alert(x);
</script>
</body>
答案 6 :(得分:0)
window.addEventListener('DOMContentReady',function(){
var x = document.getElementById('btn1');
alert(x);
};
如果您的浏览器支持,使用'DOMContentReady'事件优于'window.onload'。