js實現的獲取指定元素的節點封裝程式碼例項
對於dom元素的操作是javascript的根本目標,所以獲取要操作動科元素是先決條件。
本章節分享一段程式碼例項,它能夠獲取父元素下面指定的元素節點,希望能夠給需要的朋友帶來一定的幫助。
程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html><html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> function nth(parent,ele,num){ var _ele=Array.prototype.slice.call(parent.childNodes); var 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 obox=document.getElementById("box"); //選取第三個li元素 console.log(nth(obox,"li",2).innerHTML); //選取第四個按鈕 console.log(nth(obox,"button",3).innerHTML) //選取第二個li下的第二個按鈕 console.log(nth(nth(obox,"li",1),"button",1).innerHTML); //選取第二個li下的所有按鈕 console.log(nth(nth(obox,"li",1),"button")); //選取第二個元素 console.log(nth(obox,2)); } </script> </head> <body> <ul id="box"> <li>螞蟻部落一<button>a</button></li> <li>螞蟻部落二<button>b</button><button>o</button></li> <p>螞蟻部落</p> <li>螞蟻部落三<button>c</button></li> <li>螞蟻部落四<button>d</button></li> <li>螞蟻部落五<button>e</button></li> </ul> </body> </html>
上面的程式碼演示相關功能,在谷歌或者火狐的控制檯下能夠看到輸出結果,下面介紹一下它的實現過程。
一.程式碼註釋:
1.function nth(parent,ele,num){},此函式可以獲取指定的元素節點,第一個引數是父元素物件,第二個引數是要獲取元素節點的型別,第三個引數規定要獲取第幾個元素,第一個元素用0表示。2.var _ele=Array.prototype.slice.call(parent.childNodes),將父元素的所有子節點集合轉換為一個陣列。
3.var 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),如果arguments的length屬性值等於2,說明實際想nth()函式傳遞了2個引數。
6.if(typeof arguments[1]==="string"){
_ele=Array.prototype.slice.call(parent.getElementsByTagName(arguments[1]));
return _ele;
}如果第二個引數是字串,那麼就認為它規定的是標籤名稱,然後獲取父元素下所有的指定標籤元素,但是感覺這是有點問題的,因為getElementsByTagName()函式是獲取所有的後臺元素,所以最好使用childNodes獲取一級子節點,然後再遍歷每一個節點獲取指定標籤元素。
7.else if(typeof arguments[1]==="number"){
return eleArray[arguments[1]];
}如果是數字的話,那麼就認為它規定的是要獲取第幾個元素節點。
8.else{
_ele=Array.prototype.slice.call(parent.getElementsByTagName(ele));
return _ele[num];
}否則就認為傳遞三個引數,獲取第num個型別為ele的元素。
二.相關閱讀:
1.slice()函式可以參閱javascript Array slice()一章節。
2.call()函式可以參閱js call()一章節。
3.nodeType可以參閱js nodeType一章節。
4.push()函式可以參閱javascript push()一章節。
相關文章
- 封裝js獲取當前元素的弟弟元素節點封裝JS
- JavaScript刪除元素節點程式碼例項JavaScript
- 獲取倒數第幾個元素程式碼例項
- jquery獲取元素節點jQuery
- JavaScript獲取父元素下子元素節點JavaScript
- jquery獲取低程式碼平臺iframe巢狀的父級元素指定元素jQuery巢狀
- 127 PHP獲取網頁標題的3種實現方法程式碼例項PHP網頁
- 獲取當前元素在兄弟元素節點中的索引索引
- js獲取dom節點的方法有哪些JS
- JavaScript 獲取所有後代元素節點JavaScript
- React 深入系列1:React 中的元素、元件、例項和節點React元件
- 封裝scroll.js 獲取滾動條的值封裝JS
- JS 獲取文件元素JS
- 【原始碼】RocketMQ如何實現獲取指定訊息原始碼MQ
- PHP獲取MAC地址的實現程式碼PHPMac
- JS基礎_獲取元素的樣式JS
- jQuery利用name匹配元素程式碼例項jQuery
- html實現簡單ListViews效果的例項程式碼HTMLView
- Python獲取list中指定元素索引的兩種方法Python索引
- 獲取當前Tomcat例項的埠Tomcat
- iframe的操作-Js/Jquery獲取iframe中的元素JSjQuery
- [急⚠] BasePage 如何封裝獲取 elements 的第 x 個的點選?封裝
- 獲取Spring容器中Bean例項的工具類(Java泛型方法實現)SpringBeanJava泛型
- React獲取元件例項React元件
- 直播軟體原始碼,JS獲取指定長度的隨機字元原始碼JS隨機字元
- JavaScript取餘數程式碼例項JavaScript
- JavaScript 獲取指定標籤一級子元素JavaScript
- JS獲取元素寬高的兩種情況JS
- jQuery遍歷array陣列元素程式碼例項jQuery陣列
- Powershell 如何批次獲取檔案大小的實現程式碼
- JS 預編譯程式碼例項分析JS編譯
- Bash 指令碼例項:獲取符號連結的目標位置指令碼符號
- vuejs實現新增tag標籤程式碼例項VueJS
- 例項程式碼分享Python實現Linux監控PythonLinux
- js獲取北京時間程式碼JS
- 對比分析Java反射獲取例項的速度Java反射
- React 穿透獲取被高階元件裝飾的目標元件例項React穿透元件
- jquery.idTabs.min.js選項卡程式碼例項jQueryJS
- react專案中實現元素的拖動和縮放例項React