document.createElement方法的使用


我們在使用createElemen方法t創建一個元素節點的時候,似乎在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元素。

  標准寫法為第3種,放之各瀏覽器而皆准。

  由於在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等用這種方式就無法創建,至於具體原因我還不大清楚。所以推薦使用前面那種寫法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM