一个获取第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));//选取第二个元素
标签:
元素节点
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“一个获取第n个元素节点的js函数”评论...
更新动态
2024年11月13日
2024年11月13日
- 刘欢《雨中的树(新歌加精选)2CD》德国HD24K金碟[WAV+CUE]
- 郑源 《世间情歌》6N纯银SQCD[WAV+CUE][1G]
- 群星《粤潮2HQII》头版限量编号[低速原抓WAV+CUE][991M]
- 群星《2023好听新歌21》十倍音质 U盘音乐[WAV分轨][1G]
- 《热血传奇》双11感恩回馈 超值狂欢30天
- 原神5.2版本活动汇总 5.2版本活动有哪些
- 张敬轩.2010-NO.ELEVEN【环球】【WAV+CUE】
- 黄丽玲.2006-失恋无罪【艾回】【WAV+CUE】
- 阿达娃.2024-Laluna【W8VES】【FLAC分轨】
- 宝可梦大集结段位等级划分表大全 大集结段位一览
- 龙腾世纪影障守护者工坊与装备如何升级 工坊与装备升级说明
- 龙腾世纪影障守护者全成就攻略分享 龙腾世纪4全成就列表一览
- 《剑星》更新四套全新战衣!
- 卡普空老将伊津野英昭宣布入职腾讯光子 开发3A动作
- 38岁梅根·福克斯官宣怀孕:将迎来第四个孩子