一個(gè)獲取第n個(gè)元素節(jié)點(diǎn)的js函數(shù)
一個(gè)獲取第n個(gè)元素節(jié)點(diǎn)的函數(shù),現(xiàn)在只能通過(guò)html標(biāo)簽獲取元素,功能還不完善
演示: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父節(jié)點(diǎn)
* @param ele要選取的元素標(biāo)簽
* @param num第幾個(gè)元素
* @return {*}
*/
function nth(parent,ele,num){
var _ele=Array.prototype.slice.call(parent.childNodes),eleArray=[];
//將父節(jié)點(diǎn)的子節(jié)點(diǎn)轉(zhuǎn)換成數(shù)組_ele;eleArray為只儲(chǔ)存元素節(jié)點(diǎn)的數(shù)組
for(var i= 0,len=_ele.length;i<len;i++){
if(_ele[i].nodeType==1){
eleArray.push(_ele[i]);//過(guò)濾掉非元素節(jié)點(diǎn)
}
}
if(arguments.length===2){
//如果只傳入2個(gè)參數(shù),則如果第二個(gè)參數(shù)是數(shù)字,則選取父節(jié)點(diǎn)下的第幾個(gè)元素
//如果第二個(gè)參數(shù)是字符串,則選取父節(jié)點(diǎn)下的所有參數(shù)代表的節(jié)點(diǎn)
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{
//如果參數(shù)齊全,則返回第幾個(gè)某節(jié)點(diǎn),索引從0開(kāi)始
_ele=Array.prototype.slice.call(parent.getElementsByTagName(ele));
return _ele[num];
}
}
/*
測(cè)試
*/
var list=document.getElementById("list");
console.log(nth(list,"li",2).innerHTML);//選取第三個(gè)li元素
console.log(nth(list,"button",3).innerHTML)//選取第四個(gè)按鈕
console.log(nth(nth(list,"li",1),"button",1).innerHTML);//選取第二個(gè)li下的第二個(gè)按鈕
console.log(nth(nth(list,"li",1),"button"));//選取第二個(gè)li下的所有按鈕
console.log(nth(list,2));//選取第二個(gè)元素
- JS實(shí)現(xiàn)添加,替換,刪除節(jié)點(diǎn)元素的方法
- JS獲取節(jié)點(diǎn)的兄弟,父級(jí),子級(jí)元素的方法
- js遍歷子節(jié)點(diǎn)子元素附屬性及方法
- js創(chuàng)建元素(節(jié)點(diǎn))示例
- javascript刪除一個(gè)html元素節(jié)點(diǎn)的方法
- js 獲取元素所有兄弟節(jié)點(diǎn)的實(shí)現(xiàn)方法
- JS 使用for循環(huán)遍歷子節(jié)點(diǎn)查找元素
- JavaScript實(shí)現(xiàn)獲取某個(gè)元素相鄰兄弟節(jié)點(diǎn)的prev與next方法
- JavaScript 獲取元素在父節(jié)點(diǎn)中的下標(biāo)(推薦)
- javascript基礎(chǔ)之查找元素的詳細(xì)介紹(訪問(wèn)節(jié)點(diǎn))
- javascript刪除元素節(jié)點(diǎn)removeChild()用法實(shí)例
- JS簡(jiǎn)單添加元素新節(jié)點(diǎn)的方法示例
相關(guān)文章
微信小程序開(kāi)發(fā)打開(kāi)另一個(gè)小程序的實(shí)現(xiàn)方法
這篇文章主要介紹了微信小程序開(kāi)發(fā)打開(kāi)另一個(gè)小程序的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
微信小程序倒計(jì)時(shí)功能實(shí)現(xiàn)代碼
倒計(jì)時(shí)功能在項(xiàng)目開(kāi)發(fā)中經(jīng)常會(huì)用到,今天小編給大家介紹下微信小程序倒計(jì)時(shí)功能實(shí)現(xiàn)代碼,需要的朋友參考下吧2017-11-11
bootstrapfileinput實(shí)現(xiàn)文件自動(dòng)上傳
這篇文章主要介紹了bootstrapfileinput實(shí)現(xiàn)文件自動(dòng)上傳,bootstrap fileinput插件對(duì)多種類(lèi)型的文件提供文件預(yù)覽,并且提供了多選等功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
JavaScript開(kāi)發(fā)者必備的10個(gè)Sublime Text插件
Sublime Text幾乎是任何開(kāi)發(fā)者在其工具箱的必備應(yīng)用程序,這篇文章主要介紹了JavaScript開(kāi)發(fā)者必備的10個(gè)Sublime Text插件,感興趣的小伙伴們可以參考一下2016-02-02
對(duì)采用動(dòng)態(tài)原型方式無(wú)法展示繼承機(jī)制得思考
今天看書(shū),作者討論到能否采用動(dòng)態(tài)原型方法展示繼承機(jī)制,給出的答案是:不能。原因是prototype對(duì)象的唯一性。看下面代碼(這段代碼不正確,卻值得研究)2009-12-12
javascript中l(wèi)ayim之查找好友查找群組
這篇文章主要介紹了javascript中l(wèi)ayim之查找好友查找群組,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
基于JS實(shí)現(xiàn)計(jì)算24點(diǎn)算法代碼實(shí)例解析
這篇文章主要介紹了基于JS實(shí)現(xiàn)計(jì)算24點(diǎn)算法代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07

