DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 一個獲取第n個元素節點的js函數
一個獲取第n個元素節點的js函數
編輯:關於JavaScript     

一個獲取第n個元素節點的函數,現在只能通過html標簽獲取元素,功能還不完善

演示:html

<ul id="list">
<li>1<button>a</button></li>
<li>2<button>b</button><button>o</button></li>
<p>test</p>
<li>3<button>c</button></li>
<li>4<button>d</button></li>
<li>5<button>e</button></li>
</ul>

js:

/**
*
* @param parent父節點
* @param ele要選取的元素標簽
* @param num第幾個元素
* @return {*}
*/
function nth(parent,ele,num){
var _ele=Array.prototype.slice.call(parent.childNodes),eleArray=[];
//將父節點的子節點轉換成數組_ele;eleArray為只儲存元素節點的數組
for(var i= 0,len=_ele.length;i<len;i++){
if(_ele[i].nodeType==1){
eleArray.push(_ele[i]);//過濾掉非元素節點
}
}
if(arguments.length===2){
//如果只傳入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{
//如果參數齊全,則返回第幾個某節點,索引從0開始
_ele=Array.prototype.slice.call(parent.getElementsByTagName(ele));
return _ele[num];
}
}
/*
測試
*/
var list=document.getElementById("list");
console.log(nth(list,"li",2).innerHTML);//選取第三個li元素
console.log(nth(list,"button",3).innerHTML)//選取第四個按鈕
console.log(nth(nth(list,"li",1),"button",1).innerHTML);//選取第二個li下的第二個按鈕
console.log(nth(nth(list,"li",1),"button"));//選取第二個li下的所有按鈕
console.log(nth(list,2));//選取第二個元素
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved