JavaScript代码
- /**
- *
- * @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];
- }
- };