for循环中的HTML DOM createElement

时间:2015-07-19 08:27:36

标签: javascript html dom

当我想在带有Dom的html中添加fromChild时,我想在其中插入一些内容,但我在for循环中感到困惑。 我第一次尝试这个:

<div id="whitespaces"></div>
<script type="text/javascript">
window.onload = function() {
    var br = document.createElment("br")
    var wh = document.getElementById("whitespaces");
    for (var count = 1; count < 11; count++){
        wh.appendChild(br);
    }
}
</script>

结果是我得到 1&lt; html中的br&gt;

然后我试试这个:
              window.onload = function(){

    var wh = document.getElementById("whitespaces");
    for (var count = 1; count < 11; count++){
        wh.appendChild(document.createElement("br"));
    }
}
</script>

在此我得到 10&lt; br> 在我的html页面中。 那么为什么2的结果不同呢? 变量br不等于document.createElment(“br”)?

1 个答案:

答案 0 :(得分:3)

因为br是一个独特的元素。当您使用appendChild时,它会从中删除元素,并将其插入其他位置。除了像第二个例子中那样每次都创建一个新节点,你可以做的就是克隆节点:

var br = document.createElment("br")
var wh = document.getElementById("whitespaces");
for (var count = 1; count < 11; count++){
    wh.appendChild(br.cloneNode());
}