我們在用createElemen方法創建元素節點的時候,IE下和FF等其它浏覽器會有所不同。
如我們創建一個input元素,在IE下,我們可以有多種寫法:
<script type="text/javascript">
//第一種,連同屬性一起被創建
var x = document.createElement("<input type='text' size='30' />");
//第二種,以空標簽形式創建
var x = document.createElement("<input />");
//第三種,以tagName形式創建
var x = document.createElement("input ");
document.body.appendChild(x);
</script>
以上3種方式在IE中均可以通行,然後再非IE核心的浏覽器中(如FF,OP,SF等),前2種寫法均會報錯,無法正確創建這個input元素。
由於在IE中使用createElement方法創建元素節點時,該元素的屬性可以一起被創建,但這在其它浏覽器中是行不通的,所以我們還得通過其它的方式來創建其屬性。
創建一個帶屬性的元素節點的標准寫法:
<script type="text/javascript">
var x = document.createElement("input");
x.setAttribute("type","text");
x.setAttribute("size","30");
document.body.appendChild(x);
</script>
增加一個屬性就document.setAttribute("attribute","value")一次。
後來發現其實還可以這樣來寫:
<script type="text/javascript">
var x = document.createElement("input");
x.type = "text";
document.body.appendChild(x);
</script>
但使用這種來創建屬性,好像並不是素所有的屬性都能被創建,比如input的size,value,class等用這種方式就無法創建,至於具體原因我還不大清楚。所以推薦使用前面那種寫法。