首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript: AppendChild

Javascript: AppendChild
EN

Stack Overflow用户
提问于 2011-07-29 07:29:48
回答 6查看 63.7K关注 0票数 7

我正在学习appendChild,到目前为止我已经想出了这个代码:

代码语言:javascript
复制
var blah = "Blah!";
var t = document.createElement("table"),
  tb = document.createElement("tbody"),
  tr = document.createElement("tr"),
  td = document.createElement("td");

t.style.width = "100%";
t.style.borderCollapse = 'collapse';

td.appendChild(document.createTextNode(blah));

// note the reverse order of adding child        
tr.appendChild(td);
tb.appendChild(tr);
t.appendChild(tb);

document.getElementById("theBlah").appendChild(t);
代码语言:javascript
复制
<div id="theBlah">d</div>

但这给了我一个错误,即Uncaught TypeError: Cannot call method 'appendChild' of null。我做错了什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-07-29 07:34:51

尝试将JavaScript包装在onload函数中。所以首先添加:

代码语言:javascript
复制
<body onload="load()">

然后将您的javascript放入load函数,因此:

代码语言:javascript
复制
function load() {
    var blah="Blah!";
    var t  = document.createElement("table"),
    tb = document.createElement("tbody"),
    tr = document.createElement("tr"),
    td = document.createElement("td");

    t.style.width = "100%";
    t.style.borderCollapse = 'collapse';

    td.appendChild(document.createTextNode(blah)); 

    // note the reverse order of adding child        
    tr.appendChild(td);
    tb.appendChild(tr);
    t.appendChild(tb);

   document.getElementById("theBlah").appendChild(t);
}
票数 23
EN

Stack Overflow用户

发布于 2011-07-29 07:41:51

在页面加载完成之前,脚本正在运行。这就是document.getElementById("theBlah")返回null的原因。

可以使用jQuery之类的内容,也可以简单地使用以下内容

代码语言:javascript
复制
<script>
window.onload = function () {
    var blah="Blah!";
    var t  = document.createElement("table"),
    tb = document.createElement("tbody"),
    ...
    //the rest of your code here
};
</script>
票数 11
EN

Stack Overflow用户

发布于 2011-07-29 07:35:50

问题是document.getElementById("theBlah")返回null。原因是您的代码在theBlah元素创建之前运行。您应该将代码放在onload事件处理程序中。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6867003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档