我今晚在使用 document.getElementById 时遇到了奇怪的行为。在 Firefox 3 和 Safari 中重复。

基本上,它会在 Example1 中找到 ID 为“divid”的 div。但是,在 Example2 中它总是返回 null。这里发生了什么?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<script type="text/javascript">

addelement = function(){
    alert( document.getElementById('divid') );
}

//Example1
window.onload = function(){ alert( document.getElementById('divid') ); }
//Example2
window.onload = addelement();

</script>
<body>

    <div id="divid" class="divclass">
        <p>Test</p>
    </div>

<body>

</html>

最佳答案

当你写这行时:

window.onload = addelement();

...您实际上并没有将 addelement 分配给 window.onload。您正在执行 addelement ,然后将结果分配给 window.onload。

将行更改为:
window.onload = addelement;

关于javascript - document.getElementById 在函数中失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/423469/

10-11 05:30