JavaScript所有後代元素
獲取子元素可以使用children和childNodes。
但上述個屬性有一個共同的特點,只能夠獲取一級子節點,關於這兩個屬性的用法可以參閱下面兩章節:
(1).childNodes參閱JavaScript childNodes一章節。
(2).children可以參閱JavaScript children一章節。
下面通過程式碼例項演示一下如何利用JavaScript獲取指定元素下的所有後代元素。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html><html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #box{ width:200px; height:200px; background:blue; font-size:12px; } #middle{ width:100px; height:100px; background:black; } #inner{ width:50px; height:50px; background:green; } </style> <script type="text/javascript"> window.onload=function(){ var obox=document.getElementById("box"); var oshow=document.getElementById("show"); var arr=[]; function done(obj,arr){ if(obj.children.length!=0){ for(var index=0;index<obj.children.length;index++){ arr.push(obj.children[index].id); done(obj.children[index],arr); } } } done(obox,arr); oshow.innerHTML=arr+""; } </script> </head> <body> <div id="show"></div> <div id="box"> <div id="middle"> <div id="inner"> <div id="last">螞蟻部落</div> </div> </div> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload=function(){},文件內容完全載入完畢再去執行函式中的程式碼。
(2).var obox=document.getElementById("box"),獲取id屬性值為box的元素物件。
(3).var oshow=document.getElementById("show"),獲取id屬性值為show的元素物件。
(4).var arr=[],宣告一個空陣列,用來存放子元素的id屬性值。
(5).function done(obj,arr){},此函式可以實現遍歷指定元素所有子元素的功能,並且將子元素的id屬性值寫入陣列,第一個引數是一個元素物件,第二個是陣列。
(6).if(obj.children.length!=0){
for(var index=0;index<obj.children.length;index++){
arr.push(obj.children[index].id);
done(obj.children[index],arr);
}
}
判斷當前元素是否具有子元素,如果有子元素,則遍歷子元素,並將子元素的id屬性值寫入陣列,同時遞迴呼叫done()函式來檢測當前子元素是否還具有子元素,以此類推,最終能夠實現獲取所有後代子元素id屬性值的效果。
(7).done(obox,arr),呼叫函式。
(8).oshow.innerHTML=arr+"",將陣列中的元素寫入div中,arr+""可以將陣列元素轉換為字串,字串內容用逗號分隔。
二.相關閱讀:
(1).children屬性參閱JavaScript children一章節。
(2).push方法JavaScript push()一章節。
相關文章
- JavaScript 獲取所有後代元素節點JavaScript
- 原生javascript實現獲取指定元素下所有後代元素程式碼例項JavaScript
- jQuery獲取li元素後面所有兄弟元素jQuery
- CSS 匹配後面所有兄弟元素CSS
- css匹配後面的所有兄弟元素CSS
- JavaScript 獲取form所有表單元素JavaScriptORM
- JavaScript獲取form下所有input元素JavaScriptORM
- JavaScript在指定元素後面插入元素JavaScript
- javascript獲取所有表單元素的value值JavaScript
- javascript如何獲取指定元素內的所有圖片JavaScript
- js如何元素當前元素所有的父元素JS
- JavaScript監聽後代節點改變JavaScript
- jQuery獲取元素前面所有兄弟元素jQuery
- jquery cheerio 獲取元素文字內容,不包括後代jQuery
- JavaScript刪除陣列最後一個元素JavaScript陣列
- JavaScript獲取陣列最後一個元素JavaScript陣列
- JavaScript 刪除陣列最後一個元素JavaScript陣列
- 獲取ul元素下的所有li元素
- css 獲取從第n個開始,之後的所有元素CSS
- jQuery獲取所有兄弟元素jQuery
- javascript相容所有瀏覽器設定元素透明度程式碼例項JavaScript瀏覽器
- JavaScript 元素集合JavaScript
- js刪除執行元素下所有的子元素JS
- jQuery獲取某元素下所有的連結元素jQuery
- JavaScript獲取元素計算後樣式的封裝JavaScript封裝
- 獲取指定元素下所有li元素程式碼例項
- JavaScript元素動畫效果JavaScript動畫
- CSS 獲取所有緊鄰兄弟元素CSS
- JavaScript:打破所有規則JavaScript
- js刪除父元素下所有的元素節點程式碼JS
- javascript如何在元素中插入新的元素JavaScript
- JavaScript獲取指定元素的同輩元素JavaScript
- JavaScript獲取父元素下子元素節點JavaScript
- JavaScript動態建立元素和追加元素JavaScript
- JavaScript元素集合介紹JavaScript
- JavaScript元素抖動效果JavaScript
- JavaScript 插入新li元素JavaScript
- JavaScript 拷貝dom元素JavaScript