javascript将表头添加到html表中

时间:2017-05-26 19:50:17

标签: javascript html

我正在尝试使用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;}

1 个答案:

答案 0 :(得分:0)

我可以看到getElementById()返回NULL的唯一原因是&#34; myTable&#34;调用函数时,DOM中不存在。

您是否正在调用该功能&#34;手动&#34;在测试时?

您可以使用DOMContentLoaded事件来调用访问DOM的函数:

document.addEventListener('DOMContentLoaded', function() {
// Put JavaScript in here
});