我正在尝试使用javascript函数向html表添加标题。整个脚本相当大,所以我只包含创建html表的html片段,然后是应该为该表添加标题的函数。 (单击按钮时将调用此函数)。 但是我收到以下错误:
Locations.html:703 Uncaught TypeError: Cannot read property 'createTHead' of null
第703行对应“var hdr = tbs.createTHead();”代码行。似乎函数找不到“myTable”表,并且当它通过id行(我认为)运行getelement时返回null ...但我不确定为什么?为什么它找不到这个表元素?
<div class="statsContainer">
<div class="mainCont" id="mainCont"></div>
<div class="statsLoc" id="statsLoc">
<table class="myTable" id="myTable"></table>
</div>
<div class="listLoc" id="listLoc"></div>
</div>
function locClick(strLN) {
RegionName.innerText = strLN;
var qry = "select Latitude, Longitude, Description from locations where Location_ID in (select Location_ID from locations where Location_Name = '" + strLN + "')";
clearDiv("mainCont");
clearDiv("statsLoc");
clearDiv("listLoc");
phpRequest(qry, "getDataFromPhp", processPHP, 1);
addTableHead("myTable", "help");
}
function addTableHead(tbName, txtHead) {
var tbs = document.getElementById("myTable");
var hdr = tbs.createTHead();
var rw = hdr.insertRow(0);
var cell = rw.insertCell(0);
cell.innerHTML = txtHead;}
答案 0 :(得分:0)
我可以看到getElementById()
返回NULL的唯一原因是&#34; myTable&#34;调用函数时,DOM中不存在。
您是否正在调用该功能&#34;手动&#34;在测试时?
您可以使用DOMContentLoaded事件来调用访问DOM的函数:
document.addEventListener('DOMContentLoaded', function() {
// Put JavaScript in here
});