Javascript中的简单createElement问题

时间:2012-07-05 17:43:24

标签: javascript

我认为以下脚本将创建div元素,但我的html中没有输出任何内容。任何人都可以帮我吗?非常感谢。

var div=document.createElement('div');
div.setAttribute('id','testttttttt');

div.innerHTML='fjsoidfjiosdjfoi';​

5 个答案:

答案 0 :(得分:4)

HTML中没有任何内容,因为您的HTML位于服务器上。

DOM中没有任何内容,因为您尚未将该元素添加到DOM中。

document.body.appendChild(div);

答案 1 :(得分:3)

最后必须使用appendChild方法:

var div=document.createElement('div');
div.setAttribute('id','testttttttt');
div.innerHTML='fjsoidfjiosdjfoi';​
document.body.appendChild(div);

否则,创建的元素将存在,但不会出现在您的页面中。

此外,您必须确保document.body存在,否则,它将引发错误(如果此脚本将在加载时执行,则将其置于onload事件中。)< / p>

PS:您还可以附加到任何其他DOM元素:

document.getElementById('myDivHolder').appendChild(div);

JSFiddle示例:http://jsfiddle.net/AkXTr/

答案 2 :(得分:3)

除了创建元素外,还必须将其插入DOM中。您可以使用appendChild()方法将其添加到给定父元素的末尾:

var div=document.createElement('div');
div.setAttribute('id','testttttttt');

div.innerHTML='fjsoidfjiosdjfoi';

// Now, append it
document.getElementById('someOtherElement').appendChild(div);

答案 3 :(得分:2)

你实际上需要将它附加到某物上;我猜document.body会这样做。

var div = document.createElement('div');
div.id = 'testttttttt';
div.innerHTML = 'fjsoidfjiosdjfoi';​

document.body.appendChild(div);

请确保在document.body实际存在时执行此操作,例如在load事件中或body元素本身内。

答案 4 :(得分:1)

你正确地创建了div,只是它无处不在。它需要插入到文档中,例如像

        var div=document.createElement('div');
        div.setAttribute('id','testttttttt');
        div.innerHTML='fjsoidfjiosdjfoi';
        document.getElementsByTagName("body")[0].appendChild(div);