-1

我有如下 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 为空。关于这个问题的原因的任何猜测。

4

3 回答 3

1

尝试:

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

这将为您获取文本。

于 2013-08-25T15:50:44.367 回答
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>
于 2013-08-25T15:56:30.580 回答
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)或者在文档中创建一个全局变量 X(在 myFunction 之外),这样你就可以从任何地方调用它。

<script>
    var x; // this will be a global variable
    myFunction = function(){
       x = document.getElementById('myId');
    }
</script>
于 2013-08-25T16:08:20.857 回答