为什么这个脚本不会追加子div元素?

时间:2011-05-07 22:30:49

标签: javascript

当我点击带有调用make_child函数的onclick属性的p元素时,我希望它在点击时附加一个div元素,但它接缝只是将一个文本节点附加到段落元素的原因是什么这个?

<script type="text/javascript">
function make_child(text, id, type) {
    var text = document.createTextNode(text);
    var target = document.getElementById(id);
    var add = document.createElement(type);
    var addtext = add.appendChild(text);
    target.appendChild(addtext);
}
</script>

 <p id="changeme" onclick="make_child('I have changed', 'changeme', 'div')">Click me to change</p>

2 个答案:

答案 0 :(得分:2)

将最后一行更改为此

target.appendChild(add);

现在您要附加到正确的元素

答案 1 :(得分:1)

尝试target.appendChild(add)代替target.appendChild(addtext)

编辑(更多细节): appendChild(来自MDN)的语法是:

var child = element.appendChild(child);

其中child是要附加的元素 。在这种情况下,addtext = add.appendChild(text)设置为text而不是add。只做target.appendChild(add)就可以解决这个问题。

这也意味着变量addtext无用;你可以删除它只留下

add.appendChild(text)

该行。