0

我正在尝试学习 JavaScript.. 我正在尝试遵循示例.. 我无法让这个 getElementById 正常工作......为什么它在警报框中说 Null 而不是实际段落?

<html>
  <head>    
    <script type="text/javascript">
    var x = document.getElementById('excitingText');
    alert(x);
   </script>  
  </head>

  <body>
    <h1>This is a header!</h1>
    <p id="excitingText">
      This is a paragraph! <em>Excitement</em>!
    </p>
    <p>
      This is also a paragraph, but it is not nearly as exciting as the last one.
    </p>

  </body>

</html>
4

4 回答 4

4

当你执行

var x = document.getElementById('excitingText');
    alert(x);

页面未完成加载。把它放在里面window.onload或放在页面的末尾将使它工作。尝试:

window.onload = function() {
      var x = document.getElementById('excitingText');
                alert(x);
 }

或者放在最后。不过最好放在里面window.onload

<html>
  <head>    

  </head>

  <body>
    <h1>This is a header!</h1>
    <p id="excitingText">
      This is a paragraph! <em>Excitement</em>!
    </p>
    <p>
      This is also a paragraph, but it is not nearly as exciting as the last one.
    </p>
   <script type="text/javascript">
    var x = document.getElementById('excitingText');
    alert(x);
   </script>  
  </body>

</html>
于 2013-06-25T03:45:24.393 回答
3

那是因为您的脚本是在元素存在之前加载的。所以试着把它放在下面window.onload,以确保它在 DOM 加载后被执行。或者像这样将它移动到页面的末尾。

尝试这个:

 window.onload = function() {
      var x = document.getElementById('excitingText');
                alert(x);
 }

小提琴

于 2013-06-25T03:45:19.000 回答
1

在将元素放入 DOM 之前,您正在使用元素的引用。将相同的代码放入“$(document).onload()”中即可

$(document).onload(function(){
     var x = document.getElementById('excitingText');
     alert(x);
});
于 2013-06-25T03:49:49.910 回答
1

您也可以在中使用相同的:

 $(document).ready(function(e) {
      var x = document.getElementById('excitingText');
      alert(x); 
 });

它与其他方法相同,但有另一种方法。

于 2013-06-25T03:52:48.953 回答