removechild 函數可以刪除父元素的指定子元素。
如果此函數刪除子節點成功,則返回被刪除的節點,否則返回null。
語法結構:
fatherObj.removeChild(childrenObj)
參數解釋:
1.fatherObj:要刪除子元素的元素對象。
2.childrenObj:要被刪除的子元素對象。
特別說明:
在火狐、谷歌和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():是刪除子元素