在onload中调用document.getElementById()时为null

时间:2013-08-25 15:39:29

标签: javascript

我有如下HTML:

<html>
<head>
<script
var x=null;
function myFunction()
{
x=document.getElementById("myHeader");
}
</script>
</head>
<body onload="myFunction()">
<h1 id="myHeader" onclick="getValue()">Click me!</h1>
</body>
</html>

我面临的问题有时是在页面加载后变量x为null。任何关于这个问题的原因的猜测。

3 个答案:

答案 0 :(得分:1)

尝试:

var x=document.getElementById("myHeader").innerHTML;

这将为您提供文本。

答案 1 :(得分:0)

听起来你在调用函数之前没有完全加载DOM的问题。

尝试将脚本定义移动到页面底部:

<html>
<head>
</head>
<body onload="myFunction()">
    <h1 id="myHeader" onclick="getValue()">Click me!</h1>
    <script>
        function myFunction()
        {
            var x=document.getElementById("myHeader");
        }
    </script>
</body>
</html>

答案 2 :(得分:0)

您的脚本中存在一些问题:

1)未定义getValue函数,您必须定义getVal。

2)你必须在myFunction()中使用return(x)。

<script>
   myFunction = function(){
      var x = document.getElementById('myId');
      return(x);
   }
   // now whenever you call myFunction it will return you the object 'myId'
</script>

3)或者在文档中创建一个golobal varriable X(在myFunction之外),这样你就可以从evrywhere调用它。

<script>
    var x; // this will be a global variable
    myFunction = function(){
       x = document.getElementById('myId');
    }
</script>