-1

我编写了一个带有正文 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);
}

有人看到问题了吗?

4

3 回答 3

3

您将未定义的变量 test传递给getElementById()函数,而不是字符串value '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
于 2013-03-03T14:22:20.620 回答
2

在测试周围添加双引号,即“测试”

document.addEventListener('DOMContentLoaded', init, false);

function init () {
    // pop up
    alert(document.getElementById("test").innerHTML);
}
于 2013-03-03T14:22:28.077 回答
2

如果您的 init 函数被执行,那么您可以在您的 id 中添加引号:

document.getElementById(test)

变成

document.getElementById('test')
于 2013-03-03T14:26:55.193 回答