【问题标题】:Uncaught TypeError: Cannot read property 'getElementsByTagName' of null未捕获的类型错误:无法读取 null 的属性“getElementsByTagName”
【发布时间】:2014-06-09 11:13:24
【问题描述】:

我正在尝试使用.getElementsByTagName() 选择元素。

var tags = document.body.getElementsByTagName("*");

当前尝试使用从现有答案 https://stackoverflow.com/questions/7410949/javascript-document-getelementsbyclassname-compatibility-with-ie/7410966#7410966 中吸取的经验教训

但是我的尝试失败了,我有这个错误:

Uncaught TypeError: Cannot read property 'getElementsByTagName' of null

为什么会产生这个错误,我该如何解决?

【问题讨论】:

  • console.log(document.body) 带给你什么?

标签: javascript function typeerror


【解决方案1】:

<script><head> 元素移动到<body> 元素。



document.body 在创建 body 元素之前不会获得分配给它的值。

由于您试图获取<body> 中的所有元素,因此您希望位于body 元素的end。或者将它放在一个函数中,并从创建主体后触发的事件中调用它(例如windowload 事件)。要了解有关该尝试的更多信息,请https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event

【讨论】:

    【解决方案2】:

    函数示例:

    两种方法的示例:

    function init() {
      alert("hello javascript");
    };
    
    window.addEventListener("load",init,false);
    
    $(document).ready(function () {
      alert("hello jQuery");
    });
    

    http://jsfiddle.net/Ln5zu4Lt/

    请注意,上面的 JavaScript 示例等待页面加载(图像、iframe 等)。这比 jQuery 的准备时间要长。

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 1970-01-01
      • 2022-01-19
      • 2021-12-01
      • 2022-07-02
      • 2022-06-14
      • 2022-10-23
      相关资源
      最近更新 更多