我用body onload事件编写了一个web应用程序。我知道这不是最优的,所以我想使用DOMContentLoaded来触发我的init事件。
我有一个奇怪的问题,我无法访问我的DOM元素,我不知道为什么:/。
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<div id="test">Hello World</div>
</body>
</html>
JS:
// add event listener
document.addEventListener('DOMContentLoaded', init, false);
function init () {
// pop up
alert(document.getElementById(test).innerHTML);
}
有人看到了这个问题吗?
答案 0 :(得分:3)
您正在将未定义的变量 test
传递给getElementById()
函数,而不是字符串值'test'
。
所以
document.getElementById(test); // Incorrect - as an undefined varible
实际上应该是
document.getElementById('test') // Correct - as a string value
或者
var element_id = 'test';
document.getElementById(element_id) // Correct - as a defined variable
答案 1 :(得分:2)
在测试周围添加双引号,即“test”
document.addEventListener('DOMContentLoaded', init, false);
function init () {
// pop up
alert(document.getElementById("test").innerHTML);
}
答案 2 :(得分:2)
如果你的init函数被执行,那么你可以添加引用你的id:
document.getElementById(test)
变为
document.getElementById('test')