无法确定加载javascript文件的位置

时间:2017-01-19 18:49:17

标签: javascript

HTML

<!DOCTYPE html>
<html lang="en">

<head>

    <meta charset="utf-8">
    <title>Game</title>
    <link rel="stylesheet" type="text/css" href="stylesheet.css">
    <script src="script.js"></script>   

</head>

<body>

    <div class="container">

    <table class="table ">
        <tr>
            <td id="1">a</td>           
            <td id="2">a</td>           
            <td id="3">a</td>           
            <td id="4">a</td>
        </tr>
        <tr>
            <td id="5">a</td>           
            <td id="6">a</td>           
            <td id="7">a</td>           
            <td id="8">a</td>
        </tr>
        <tr>
            <td id="9">a</td>           
            <td id="10">a</td>          
            <td id="11">a</td>          
            <td id="12">a</td>
        </tr>
        <tr>
            <td id="13">a</td>          
            <td id="14">a</td>          
            <td id="15">a</td>          
            <td id="16">a</td>
        </tr>
    </table>

    </div>


</body>

function startFunction() {
    var table = document.querySelector('#table');
    var table_cells = table.querySelectorAll('td');   
}


window.onload = function() {
  startFunction();
};

我一直收到“未捕获的typeError:无法读取属性'querySelectorAll'为null的错误。”

我认为这与我在调用一个函数试图抓住所述元素节点之前的事实有关吗?

我正在我的HTML文件的<head>部分加载我的Javascript文件,所以我添加了一个window.onload函数,以确保在页面运行之前加载了所有内容。但是,我仍然会收到此错误。

2 个答案:

答案 0 :(得分:3)

在JavaScript中查看此行:

var table = document.querySelector('#table');

井号表示 ID ,因此您的javascript正在寻找ID为“table”的元素。

但是,如果你查看你的表,它没有ID;只有 class

解决方案是为您的<table>提供一个“表格”ID,以便javascript正确找到它:

<table id="table">

答案 1 :(得分:1)

该表缺少id属性。相反,它具有class属性。通过添加id

进行修复
<table class="table" id="table">

或修改您的查询选择器以按类选择:

var table = document.querySelector('.table');