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等等