在JavaScript中,創建新節點都是先用document對象中的createElement()和createTextNode()這2種方法創建一個元素節點,然後再通過appendChild()、insertBefore()等方法把新元素節點插入現有的元素節點中去。
語法:
var e = document.createElement("元素名"); //創建元素節點 var t = document.createTextNode("元素內容"); //創建文本節點 e.appendChild(t); //把元素內容插入元素中去
舉例1:創建簡單節點
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <script type="text/javascript"> var e = document.createElement("h1"); var txt = document.createTextNode(" 學習網"); e.appendChild(txt); //把元素內容插入元素中去 document.body.appendChild(e); </script> </body> </html>
在浏覽器預覽效果如下:
分析:
這裡使用document.createElement()方法創建了h1標簽,但是此時h1標簽是沒有內容;然後使用document.createTextNode()方法創建了一個“文本節點”。之後我們只有使用appendChild()方法往h1標簽中插入文本節點,h1標簽才有內容。最後使用“document.body.appendChild(e);”把新創建的節點h1輸入到HTML文檔中去。
上面例子創建的是一個簡單的節點,如果想要創建以下節點該怎麼做呢?
<input id="submit" type="button" value="提交"/>
舉例2:創建復雜節點
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <script type="text/javascript"> var e = document.createElement("input"); e.id = "submit"; e.type = "button"; e.value = "提交"; document.body.appendChild(e); </script> </body> </html>
在浏覽器預覽效果如下:
分析:
我們在“DOM對象節點屬性”這一節知道,在DOM中,每一個元素節點都被看做一個對象,因此我們可以像操作對象的屬性那樣給元素節點的屬性賦值。
上面是創建一個新節點,如果想要創建一個表格這種多節點的,該怎麼辦呢?這時我們可以使用循環語句和數組來實現。給大家一個思考題:如何創建一個3行3列的表格,試著用JavaScript創建節點做一下。