removechild 函數可以刪除父元素的指定子元素。
如果此函數刪除子節點成功,則傳回已刪除的節點,否則傳回null。
語法結構:
fatherObj.removeChild(childrenObj)
參數解釋:
1.fatherObj:要刪除子元素的元素物件。
2.childrenObj:要被刪除的子元素物件。
特別說明:
在火狐、Google和IE8以上瀏覽器中,空白也算是一個文字節點,但是在IE8和IE8以下瀏覽器中會忽略空白文字節點,具體可以參閱javascript如何取得元素的子節點和父節點一章節。
程式碼實例:
實例一:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.jb51.net/" /> <title>脚本之家</title> <script type="text/javascript"> window.onload=function(){ var obox=document.getElementById("box"); var lis=obox.getElementsByTagName("li"); obox.removeChild(lis[1]); } </script> </head> <body> <ul id="box"> <li>脚本之家一</li> <li>脚本之家二</li> <li>脚本之家三</li> <li>脚本之家四</li> </ul> </body> </html>
以上程式碼可以刪除box的子元素中的第二個li元素。
實例二:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>脚本之家</title> <script type="text/javascript"> window.onload=function(){ var obox=document.getElementById("box"); var liArray=[]; var y=0; var childNodes=obox.childNodes; for(var i=0;i<childNodes.length;i++){ if(childNodes[i].nodeType==1){ liArray[y]=childNodes[i]; y=y+1; } } obox.removeChild(liArray[1]); } </script> </head> <body> <ul id="box"> <li>脚本之家一</li> <li>脚本之家二</li> <li>脚本之家三</li> <li>脚本之家四</li> </ul> </body> </html>
以上程式碼可以從box中所有子節點選取元素節點,然後將元素節點放入數組,然後再刪除第二個元素節點。
總結:
removeChild()
這個函數是得到元素的父元素,進行刪除的。語法形式為:parent.removeChild(child);
有時候我們希望在不涉及父元素的情況下進行刪除。但是DOM 就是這個機制,必須先明確元素和父元素才能刪除。在進的到要刪除的元素時,我們也是可以進行刪除操作的,利用其 parentNode 屬性來找到父元素:
var child=document.getElementById(p1); child.parentNode.removeChild(child);
注意:jquery也有功能與removeChild相對應的函數:remove()和empty()
remove():是指將自己本身和子元素都刪除
empty():是刪除子元素