开发者问题收集

未捕获的类型错误:无法在 window.onload 中读取 null 的属性“length”

2017-04-26
1740

我从网上资源中学习了 javascript 代码,但是遇到了一些问题, 我的代码无法运行,并且出现了“Uncaught TypeError...”。我尝试了很多方法来解决错误,但都不起作用。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>win下载 </title>
    <style>
        div {width: 200px;height: 200px;float: left;
            border: 1px solid black;margin: 10px}
    </style>
    <script>
        window.onload=function () {
            var aDiv = document.getElementById('div');
            alert(aDiv.length);
         //   aDiv[0].style.background = 'red';
        };
    </script>
</head>
<body>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</body>
</html>
3个回答

在您的示例中,您使用的是 document.getElementById('div') 。没有 ID 为 div 的元素。

我假设您正在寻找 document.getElementsByTagName('div') ,它将返回所有 <div> 元素。

window.onload = function() {
    var divElements = document.getElementByTagName('div');

    alert(divElements.length); // 4

    divElements[0].style.background = 'red'; // set the first div element's background to red
};
Toby Mellor
2017-04-26

var aDiv = document.getElementById('div'); 应为 var aDiv = document.getElementsByTagName('div');

<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>win下载 </title>
    <style>
        div {width: 200px;height: 200px;float: left;
            border: 1px solid black;margin: 10px}
    </style>
    <script>
        window.onload=function () {
            var aDiv = document.getElementsByTagName('div');
            alert(aDiv.length);
         //   aDiv[0].style.background = 'red';
        };
    </script>
</head>
<body>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</body>
</html>

(注意:最好将 JavaScript 与 html 分开)

2017-04-26

Id 是您赋予任何 HTML 标签的属性。例如 <div id="myFirstDiv"> 。它在文档中应该是唯一的,并且通常应该是一个有意义的名称。

“div”是一个标签名称,因此您可以使用 getElementsByTagName("div"); 获取示例中的所有 div,然后循环遍历它们。

bbsimonbb
2017-04-26