JavaScript nextElementSibling 屬性
nextElementSibling 屬性返回當前節點的下一個兄弟元素節點,只讀屬性。
為了便於記憶和理解,nextElementSibling 可以分解成三個單詞:
(1).next:下一個。
(2).element:元素。
(3).sibling:兄弟。
由此可以得出,此屬性返回的節點必須要滿足三個條件:
(1).必須是元素節點。
(2).必須是同級節點。
(3).必須是緊鄰的下一個節點。
如果不存在同時滿足上述條件的節點,那麼此屬性返回 null。
功能與 nextSibling 屬性類似,唯一的不同是:
nextSibling 沒有對節點的型別做限定,而 nextElementSibling 限定必須是元素節點。
語法結構:
[JavaScript] 純文字檢視 複製程式碼node.nextElementSibling;
瀏覽器支援:
(1).IE9+ 瀏覽器支援此屬性。
(2).edge 瀏覽器支援此屬性。
(3).谷歌瀏覽器支援此屬性。
(4).opera 瀏覽器支援此屬性。
(5).火狐瀏覽器支援此屬性。
(6).safari 瀏覽器支援此屬性。
程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="https://www.softwhy.com/" /> <title>螞蟻部落</title> <style> ul { width :150px; list-style-type: none; border: 2px dotted green; padding-left:10px } ul li { height :25px; line-height :25px; font-size :12px; padding: 0; } #show { width :160px; border: 2px dotted green; text-align: center; font-size: 12px; } </style> <script> window.onload = ()=> { let oLi = document.getElementsByTagName("li")[1]; let oShow = document.getElementById("show"); let nextLi = oLi.nextElementSibling; oShow.innerHTML = nextLi.innerHTML; } </script> </head> <body> <ul> <li>螞蟻部落一</li> <li>螞蟻部落二</li> <li>螞蟻部落三</li> <li>螞蟻部落四</li> <li>螞蟻部落五</li> </ul> <div id="show"></div> </body> </html>
程式碼執行效果截圖如下:
對上述程式碼進行一下分析:
(1).li 元素在集合中的索引位置從 0 開始計算。
(2).於是,let oLi = document.getElementsByTagName("li")[1]獲取第二個 li 元素。
(3).那麼,第二個 li 元素的下一個元素節點就是第三個 li 元素。
(4).最後將文字"螞蟻部落三" 寫入 div 元素。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="https://www.softwhy.com/" /> <title>螞蟻部落</title> <style> ul { width :150px; list-style-type: none; border: 2px dotted green; padding-left:10px } ul li { height :25px; line-height :25px; font-size :12px; padding: 0; } #show { width :160px; border: 2px dotted green; text-align: center; font-size: 12px; } </style> <script> window.onload= ()=> { let oUl = document.getElementsByTagName("ul")[0]; let childNodes=oUl.childNodes; let oShow = document.getElementById("show"); console.log(childNodes[4].nodeType); let nextEleLi = childNodes[4].nextElementSibling; oShow.innerHTML = nextEleLi.innerHTML; } </script> </head> <body> <ul> <li>螞蟻部落一</li> <li>螞蟻部落二</li> <li>螞蟻部落三</li> <li>螞蟻部落四</li> <li>螞蟻部落五</li> </ul> <div id="show"></div> </body> </html>
谷歌開發者工具控制檯列印效果截圖如下:
控制檯列印內容是 3,說明 ul 元素下索引值為 4 的子節點是文字節點。
在標準瀏覽器中,空格與換行被解讀為文字節點。
再來看頁面 div 中顯示的內容,截圖如下:
很多朋友下意識的認為 nextElementSibling 等類似屬性的引用者總是元素節點物件。
這種想法是錯誤的,不僅元素節點才有緊鄰的同級節點,文字節點或註釋節點也可以有。
相關文章
- JavaScript nextElementSiblingJavaScript
- JavaScript childElementCount 屬性JavaScript
- JavaScript prototype屬性JavaScript
- JavaScript files 屬性JavaScript
- JavaScript cells 屬性JavaScript
- JavaScript rows 屬性JavaScript
- JavaScript nodeName 屬性JavaScript
- JavaScript offsetX 屬性JavaScript
- JavaScript classList 屬性JavaScript
- JavaScript rowIndex 屬性JavaScriptIndex
- JavaScript tagName 屬性JavaScript
- JavaScript validity 屬性JavaScript
- JavaScript className 屬性JavaScript
- JavaScript style 屬性JavaScript
- JavaScript NaN 屬性JavaScriptNaN
- JavaScript Infinity 屬性JavaScript
- JavaScript parentNode 屬性JavaScript
- JavaScript firstChild屬性JavaScript
- JavaScript select text 屬性JavaScript
- JavaScript select size 屬性JavaScript
- JavaScript select length 屬性JavaScript
- JavaScript 例項屬性JavaScript
- JavaScript 字串 length屬性JavaScript字串
- JavaScript 函式 name 屬性JavaScript函式
- 理解 JavaScript 物件的屬性JavaScript物件
- JavaScript 刪除class屬性JavaScript
- JavaScript 函式 length 屬性JavaScript函式
- JavaScript 陣列 length 屬性JavaScript陣列
- JavaScript物件的資料屬性與訪問器屬性JavaScript物件
- JavaScript 獲取 checked 屬性值JavaScript
- JavaScript監聽屬性改變JavaScript
- JavaScript ----- 操作DOM物件的屬性JavaScript物件
- JavaScript物件屬性是有序的嗎?JavaScript物件
- JavaScript 數字呼叫方法或者屬性JavaScript
- JavaScript get set 訪問器屬性JavaScript
- JavaScript刪除和清空物件屬性JavaScript物件
- JavaScript遍歷物件屬性順序JavaScript物件
- (JavaScript學習記錄):jQuery 屬性操作JavaScriptjQuery