2 willerfu Willerfu 于 2016.02.24 14:47 提问

js appendChild 添加节点没有效果

想试下js里 appendChild()添加节点,结果没有反应,不知道问题处在哪里,火狐IE都没有效果。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>演示</title>
</head>

<script type="text/javascript">

    var node=document.createElement("li"); //创建一个li节点

    var textnode=document.createTextNode("Water"); //创建一个文本节点内容

    node.appendChild(textnode); //将文本节点内容,添加到li节点里面

    document.getElementById("test").appendChild(node); //将li节点,添加到test几点下面

</script>
<body>
    <ul id="test"><li>Coffee</li><li>Tea</li></ul>
</body>
</html> 

4个回答

qq_28088659
qq_28088659   2016.02.24 15:14
已采纳

html执行代码是按顺序执行的,js代码在body前,所以js执行时,body还没有。这样的话添加元素是无法完成的。
解决办法:

法一:
将js代码放在

qq_28088659
qq_28088659   2016.02.24 15:17

html执行代码是按顺序执行的,js代码在body前,所以js执行时,body还没有。这样的话添加元素是无法完成的。
解决办法
法一:
将js代码放在body后面

法二:
给body加一个onload事件,将js代码放在该事件处理函数中即可。

Willerfu
Willerfu 谢谢
接近 2 年之前 回复
showbo
showbo   Ds   Rxr 2016.02.24 15:31
     <ul id="test"><li>Coffee</li><li>Tea</li></ul>
    <script type="text/javascript">

        var node = document.createElement("li"); //创建一个li节点

        var textnode = document.createTextNode("Water"); //创建一个文本节点内容

        node.appendChild(textnode); //将文本节点内容,添加到li节点里面

        document.getElementById("test").appendChild(node); //将li节点,添加到test几点下面

</script>
liuyan19891230
liuyan19891230   2016.02.25 08:38

将js代码放在window.onload = function(){}中。
这样才会在DOM树加载好之后,开始执行函数中的内容。

Willerfu
Willerfu 谢谢 ,明白了
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!