JavaScript removeChild()
removeChild可以刪除指定元素的子節點,由它的名稱也體現了這一點。
如果刪除成功,則返回被刪除的子節點物件,否則返回null。
語法結構:
[JavaScript] 純文字檢視 複製程式碼fatherObj.removeChild(childrenObj)
引數解析:
(1).childrenObj:必需,要被刪除的子節點物件。
瀏覽器支援:
(1).IE瀏覽器支援此方法。
(2).edge瀏覽器支援此方法。
(3).谷歌瀏覽器支援此方法。
(4).opera瀏覽器支援此方法。
(5).火狐瀏覽器支援此方法。
(6).safria瀏覽器支援此方法。
程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ let obox=document.getElementById("box"); let 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>
上面程式碼可以刪除ul元素下的第二個li元素。
程式碼執行效果截圖如下:
getElementsByTagName參閱JavaScript getElementsByTagName()一章節。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ let obox=document.getElementById("box"); let childNodes=obox.childNodes; obox.removeChild(childNodes[1]); } </script> </head> <body> <ul id="box"> <li>螞蟻部落一</li> <li>螞蟻部落二</li> <li>螞蟻部落三</li> <li>螞蟻部落四</li> </ul> </body> </html>
上述程式碼可以刪除ul元素下的第一個子節點。
程式碼執行效果截圖如下:
看到上述程式碼執行效果後,可能不少朋友會有這樣的疑問。
既然已經刪除第一個子節點了,為什麼第一個li元素依然存在呢。
分析如下:
(1).首先節點與元素節點不同,節點包括元素節點。
(2).childNodes屬性返回的是子節點,不是元素節點。
(3).在標準瀏覽器中,空格與換行被認作文字節點,在IE8-瀏覽器中會被忽略。
所以obox.removeChild(childNodes[1])刪除的是第一個文字節點,而不是第一個li元素節點。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ let obox=document.getElementById("box"); let lis=obox.getElementsByTagName("li"); let deletedLi=obox.removeChild(lis[1]); console.log(deletedLi.innerHTML); } </script> </head> <body> <ul id="box"> <li>螞蟻部落一</li> <li>螞蟻部落二</li> <li>螞蟻部落三</li> <li>螞蟻部落四</li> </ul> </body> </html>
程式碼執行效果截圖如下:
此方法的返回值是本刪除節點物件本身,控制檯列印效果可以證明這一點。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ let obox=document.getElementById("box"); let ospan=obox.getElementsByTagName("span")[0]; console.log(obox.removeChild(ospan)); } </script> </head> <body> <ul id="box"> <li> <span>螞蟻部落</span> </li> </ul> </body> </html>
程式碼執行效果截圖如下:
removeChild方法只能刪除它的一級子節點,也就是說可以刪除它的兒子節點。
不能刪除孫子節點或者更加晚輩的節點,這一點要注意,否則程式碼會報錯。
相關文章
- removeChild踩坑記REM
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- javaScript系列[06]-javaScript和thisJavaScript
- [Javascript] How javascript read the property?JavaScript
- javaScript系列[05]-javaScript和JSONJavaScriptJSON
- “This” is For JavaScriptJavaScript
- This in JavaScriptJavaScript
- JavaScript -"this"JavaScript
- JavaScriptJavaScript
- javascript ??JavaScript
- 44 道 JavaScript 難題(JavaScript Puzzlers!)JavaScript
- [Javascript] Understanding JavaScript Proxies with Symbol.toPrimitiveJavaScriptSymbolMIT
- JavaScript 教程之JavaScript常用框架簡介JavaScript框架
- [Javascript] Perform Set Operations using JavaScript Set MethodsJavaScriptORM
- javascript — == vs ===JavaScript
- JavaScript selectedIndexJavaScriptIndex
- JavaScript deleteCell()JavaScriptdelete
- JavaScript lastElementChildJavaScriptAST
- JavaScript hasAttribute()JavaScript
- JavaScript getAttributeNode()JavaScript
- JavaScript replaceChild()JavaScript
- JavaScript remove()JavaScriptREM
- JavaScript appendChild()JavaScriptAPP
- JavaScript deleteRow()JavaScriptdelete
- JavaScript clientYJavaScriptclient
- JavaScript之thisJavaScript
- JavaScript isFinite()JavaScript
- JavaScript toggle()JavaScript
- JavaScript Boolean()JavaScriptBoolean
- JavaScript escape()JavaScript
- JavaScript parseFloat()JavaScript
- JavaScript unescape()JavaScript
- JavaScript call()JavaScript
- JavaScript bind()JavaScript
- JavaScript previousElementSiblingJavaScript
- JavaScript preventDefault()JavaScript
- JavaScript insertRow()JavaScript
- JavaScript isPrototypeOf()JavaScript