您的位置:首页 > Web前端 > HTML

如何在FireFox中动态创建html元素(createElement)

2008-06-30 13:01 459 查看
IE Code:
<script type="text/javascript">
function add() {

var input = document.createElement("<input size=30 type=/"text/" name=/"extrachildren[]/">")
var br = document.createElement("<br>");
var br2 = document.createElement("<br>");
document.getElementById("children").insertBefore(br);
document.getElementById("children").insertBefore(br2);
document.getElementById("children").insertBefore(input);

}
</script>

上面代码在FireFox中不工作

请采用下面方法:

Code:
<script type="text/javascript">
function add()
{
var input = document.createElement('input');
input.setAttribute('size', '30');
input.setAttribute('type', 'text');
input.setAttribute('name', 'extrachildren[]');
var parent = document.getElementById('children');
parent.insertBefore(document.createElement('br'), null);
parent.insertBefore(document.createElement('br'), null);
parent.insertBefore(input, null);
}
</script>

IE有3种方式都可以创建一个元素:

1 document.createElement("<input type=text>")
2 document.createElement("<input>")
3 document.createElement("input")

Firefox只支持一种方式:
document.createElement("input");document.setAttribute(name,value);

------------
注: 在一个节点下增加子节点 IE也比Firefox下的方式要多.

IE:

1 node.insertBefore(Element)
2 node.insertAfter(Element)
3 node.appendChild(Element)

而Firefox仅支持 node.appendChild.

在IE里面,html元素如果可以作为容器,那么在document.createElement创建元素时是无法设置name属性的,比如:div,span,font等等。
相反不可以做为容器的,在用document.createElement创建元素时可以设置控件的name属性,比如:input,button,a,img等等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: