一个获取第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));//选取第二个元素

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索元素节点
javascript 元素节点、javascript获取父节点、javascript获取子节点、javascript获取节点、javascript获取子元素,以便于您获取更多的相关知识。

时间: 2024-11-21 06:30:26

一个获取第n个元素节点的js函数_javascript技巧的相关文章

代码精简的可以实现元素圆角的js函数_javascript技巧

上次在blueidea上看到一个元素圆角的实现方法,但是那个太复杂了.于是就自己写了一个函数,可以将元素自动圆角.  演示地址:http://longbill.cn/down/sample/roundcorner.htm  不要用在有 padding 值得元素上,最好是在外面套一层.详情见演示地址.  代码:  function RoundCorner(obj,style)  {  /********  网页元素圆角函数!!  作者: Longbill  主页: www.longbill.cn 

javascript删除元素节点removeChild()用法实例_javascript技巧

本文实例讲述了javascript删除元素节点removeChild()用法.分享给大家供大家参考.具体分析如下: 操作DOM节点的方法:removeChild(),移除子节点,那么可以变通一下来实现移除指定的节点,我们可以先去找到要删除节点的父节点,然后在父节点中运用removeChild来移除我们想移除的节点. function removeElement(_element){ var _parentElement = _element.parentNode; if(_parentEleme

通过百度地图获取公交线路的站点坐标的js代码_javascript技巧

最近做百度地图的模拟数据,需要获取某条公交线路沿途站点的坐标信息,貌似百度没有现成的API,因此做了一个模拟页面,工具而已,IE6/7/8不支持 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>获取公交站点坐标</title> <style type="text/css"> html,b

利用谷歌地图API获取点与点的距离的js代码_javascript技巧

复制代码 代码如下: var request; var distanceArray = []; function getdistance() { distanceArray = []; var directionsService = new google.maps.DirectionsService(); for (var a = 0; a < pointsArray.length; a++) { for (var b = 0; b < pointsArray.length; b++) { i

一个奇葩的最短的 IE 版本判断JS脚本_javascript技巧

使用 conditional comment 来判断 IE 的版本.嗯,是早早有人提出,但没有认真看代码.昨天刚好在看 CSS3 PIE 的时候看到,觉得是不是不靠谱.今天看到 Paul Irish 也提起,那么,推荐一下吧.这是作者博客上写的: 复制代码 代码如下: // ----------------------------------------------------------// A short snippet for detecting versions of IE in Jav

一个判断抢购时间是否到达的简单的js函数_javascript技巧

原型函数,功能很简单,找到时钟的id,计算数值,到达抢购时间时执行任务. function nwt() {var str=$('#deal_expiry_timer_e3cdcd2a').text(); var out=str.match(/\d+/g);console.log(out); var h=parseInt(out[0]),m=parseInt(out[1]),s=parseInt(out[2]); console.log(h+'#'+m+'#'+s);var calc=h*3600

点击button获取text内容并改变样式的js实现_javascript技巧

需求:点击button获得input框中选中的内容,让选中的内容变红, 实现:代码如下 <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Test</title> <style type="text/css">

一个可以随意添加多个序列的tag函数_javascript技巧

/** * @author Supersha * @QQ:770104121 */ 由于在没有规划好的情况下写的这个代码,写的比较粗糙,也没有添加注释. 主要特点:JavaScript代码和HTML完全分离:可以随意添加多个子div标签,自动扩展 JavaScript代码: 复制代码 代码如下: <script type="text/javascript"> var tag = function(parentTagId, sunTag){ var oldHtml = [];

一个不错的用JavaScript实现的UBB编码函数_javascript技巧

function JsUBB(str)   {   var re=//[i/](.[^/[]*)/[//i/]/gi;   str=str.replace(re,"<i>$1</i>"); //斜体字   re=//[b/](.[^/[]*)/[//b/]/gi;   str=str.replace(re,"<b>$1</b>"); //粗体字   re=//[u/](.[^/[]*)/[//u/]/gi;   str