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