想试下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>
html执行代码是按顺序执行的,js代码在body前,所以js执行时,body还没有。这样的话添加元素是无法完成的。
解决办法:
法一:
将js代码放在
html执行代码是按顺序执行的,js代码在body前,所以js执行时,body还没有。这样的话添加元素是无法完成的。
解决办法
法一:
将js代码放在body后面
法二:
给body加一个onload事件,将js代码放在该事件处理函数中即可。
<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>
将js代码放在window.onload = function(){}中。
这样才会在DOM树加载好之后,开始执行函数中的内容。