JavaScript獲取父元素下子元素節點
本章節分享一段程式碼例項,它能夠獲取父元素下指定的子元素節點。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> ul li{ list-style:none; font-size:12px; } </style> <script type="text/javascript"> function nth(parent,ele,num){ var _ele=Array.prototype.slice.call(parent.childNodes),eleArray=[]; for(var index= 0,len=_ele.length;index<len;index++){ if(_ele[index].nodeType==1){ eleArray.push(_ele[index]); } } if(arguments.length===2){ if(typeof arguments[1]==="string"){ _ele=Array.prototype.slice.call(parent.getElementsByTagName(arguments[1])); return _ele; } else if(typeof arguments[1]==="number"){ return eleArray[arguments[1]]; } } else{ _ele=Array.prototype.slice.call(parent.getElementsByTagName(ele)); return _ele[num]; } } window.onload=function(){ var list=document.getElementById("list"); console.log(nth(list,"li",2).innerHTML); console.log(nth(list,"button",3).innerHTML) console.log(nth(nth(list,"li",1),"button",1).innerHTML); console.log(nth(nth(list,"li",1),"button")); console.log(nth(list,2)); } </script> </head> <body> <ul id="list"> <li>1<button>a</button></li> <li>2<button>n</button><button>t</button></li> <p>螞蟻部落</p> <li>3<button>z</button></li> <li>4<button>o</button></li> <li>5<button>n</button></li> <li>6<button>e</button></li> </ul> </body> </html>
一.程式碼註釋:
(1).function nth(parent,ele,num){},此方法實現獲取子元素的功能,第一個引數是父元素物件,第二個引數規定要獲取子元素的型別,第三個引數規定獲取子元素的索引值。
(2).var _ele=Array.prototype.slice.call(parent.childNodes),將父元素的子節點儲存在一個新的陣列中。
(3).eleArray=[],宣告一個空陣列。
(4).for(var index= 0,len=_ele.length;index<len;index++){
if(_ele[index].nodeType==1){
eleArray.push(_ele[index]);
}
}遍歷陣列,其實就是父元素的每一個子節點。
如果是元素節點,那麼久將其存入eleArray陣列。
(5).if(arguments.length===2){},判斷是否為函式傳遞了兩個引數。
(6).if(typeof arguments[1]==="string"){
_ele=Array.prototype.slice.call(parent.getElementsByTagName(arguments[1]));
return _ele;
},如果第二個引數的型別是字串,那麼第二個引數傳遞的就是元素型別,這個時候獲取的是父元素下所有指定型別的元素,並存入陣列,最後返回此陣列。
(7).else if(typeof arguments[1]==="number"){
return eleArray[arguments[1]];
},如果第二個引數是數字型別,那麼返回的是父元素下一級子元素節點中指定索引的元素節點。
(8).else{
_ele=Array.prototype.slice.call(parent.getElementsByTagName(ele));
return _ele[num];
},如果傳遞的不是2個引數,那麼就是三個引數(其他的引數不做考慮)
那麼就會獲取所有的父節點下所有的指定型別的後代元素,然後並返回指定索引的元素。
二.相關閱讀:
(1).slice()方法參閱javascript Array slice()一章節。
(2).call()方法參閱js call()一章節。
(3).nodeType參閱js nodeType一章節。
(4).push()方法參閱javascript push()一章節。
(5).arguments物件參閱javascript arguments一章節。
相關文章
- JavaScript 獲取所有後代元素節點JavaScript
- jquery獲取元素節點jQuery
- JavaScript 獲取下一個元素節點JavaScript
- 封裝js獲取當前元素的弟弟元素節點封裝JS
- 獲取當前元素在兄弟元素節點中的索引索引
- JavaScript 獲取第n個li元素JavaScript
- JavaScript 通過class獲取元素物件JavaScript物件
- jquery獲取低程式碼平臺iframe巢狀的父級元素指定元素jQuery巢狀
- JavaScript獲取元素在文件中座標JavaScript
- JavaScript獲取滑鼠在元素中的座標JavaScript
- JavaScript獲取陣列最後一個元素JavaScript陣列
- JavaScript獲取元素在陣列中的位置JavaScript陣列
- JavaScript 獲取指定標籤一級子元素JavaScript
- JavaScript 獲取倒數第二個li元素JavaScript
- JavaScript刪除元素節點程式碼例項JavaScript
- JS 獲取文件元素JS
- dom元素操作獲取等
- JavaScript獲取元素距離文件頂部的距離JavaScript
- html 子元素div影響父元素高度HTML
- 關於父視窗獲取跨域iframe子視窗中的元素跨域
- js獲取iframe和父級之間元素,方法、屬,獲取iframe的高度自適應iframe高度JS
- JavaScript獲取瀏覽器、元素、螢幕的寬高尺寸JavaScript瀏覽器
- Appium Android 獲取WebView元素的方法APPAndroidWebView
- Revit獲取元素的巢狀族巢狀
- CSS 獲取所有緊鄰兄弟元素CSS
- 子元素固定寬度 父元素寬度被撐開
- 父元素下有子元素,子元素也有高度但父元素的高度為何為0呢?分析下可能出現的原因及解決方法
- JavaScript 元素集合JavaScript
- position:fixed 相對父元素定位
- Java從List中獲取隨機元素Java隨機
- appium 獲取混合頁面元素失敗APP
- JS基礎_獲取元素的樣式JS
- layer父介面呼叫子彈窗的方法和獲取子彈窗的元素值總結
- 設定子父元素overflow:hidden,子元素absolute不顯示問題
- jQuery捕獲-獲取DOM元素內容和屬性jQuery
- 小微型庫(1.獲取元素的API)API
- jq獲取上級、同級、下級元素
- Jquery如何獲取和設定元素內容?jQuery