无法访问DOM元素

时间:2013-03-03 14:19:43

标签: javascript dom

我用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);
}

有人看到了这个问题吗?

3 个答案:

答案 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')