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
函数,以确保在页面运行之前加载了所有内容。但是,我仍然会收到此错误。
答案 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');