js通过classname来获取元素的方法
2016-11-24 08:58
615 查看
原生JS有3种方式来获取元素:
getElementById('id') getElementsByName('name') getElementsByTagName('tag') getElementById是获取元素最快的方式,但我们不能给每个HTML元素都加以ID吧,所以我们需要一个很方便的通过className来获取元素 function getElementsByClassName(className,tagName){ var ele=[],all=document.getElementsByTagName(tagName||"*"); for(var i=0;i<all.length;i++){ if(all[i].className==className){ ele[ele.length]=all[i]; } } return ele; } console.log(getElementsByClassName("entry")); console.log(getElementsByClassName("entry","div"));
实现原理很简单,通过getElementsByTagName获取到一个元素集合,如果传入了tagname这个参数就根据传入的
tagname来获取,否则获取所有的元素,然后再一个一个元素来匹配classname是否相等..
上面这个方法很粗糙,能实现我们的基本需求,如果我们要获取的元素有多个 classname怎么办?
明显通过className==是不行了
所以我们只要把上面两篇文章的hasclass函数搬过来就OK了,我们再次来改造下我们的getElementsByClassName函数
function getElementsByClassName(className,tagName){ var ele=[],all=document.getElementsByTagName(tagName||"*"); for(var i=0;i<all.length;i++){ if(all[i].className.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'))){ ele[ele.length]=all[i]; } } return ele; }
这样就能处理一个元素含有多个classname的情况了
以上就是小编为大家带来的js通过classname来获取元素的方法全部内容了,希望大家多多支持脚本之家~
您可能感兴趣的文章:
相关文章推荐
- 通过js或jQuery,<iframe>子父窗口之间元素、方法、window的相互获取
- js通过classname来获取元素
- js封装获取元素类名(className)的方法
- JS封装通过className获取元素的函数示例
- JS封装通过className获取元素的函数示例
- 通过className获取元素的js
- [Js]封装好的通过className来获取元素的函数
- js通过class获取元素的方法
- js 通过className来获取元素
- JS原生通过id,class,tagname 来获取元素的方法
- 通过js获取元素css3的transform rotate旋转角度方法
- 通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
- Js 获取HTML DOM节点元素的方法小结
- js获取json元素数量的方法
- 笔记-[JS自定义方法]-根据className获取元素对象
- js中document通过ID获取的一些使用方法
- js通过类名获取元素(通用版)
- 关于JS中的获取元素的方法
- js 获取元素下面所有li的两种方法
- js 获取元素所有兄弟节点的实现方法