js通过classname来获取元素的方法


Posted in Javascript onNovember 24, 2016

原生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来获取元素的方法全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
Apr 20 Javascript
JavaScript this 深入理解
Jul 30 Javascript
jquery放大镜效果超漂亮噢
Nov 15 Javascript
bootstrap data与jquery .data
Jul 07 Javascript
javascript中字符串拼接详解
Sep 26 Javascript
javascript结合CSS实现苹果开关按钮特效
Apr 07 Javascript
javascript基本语法
May 31 Javascript
Javascript类型系统之String字符串类型详解
Jun 21 Javascript
基于Javascript实现的不重复ID的生成器
Dec 25 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
May 10 Javascript
详解Vue-cli代理解决跨域问题
Sep 27 Javascript
Vue v-for循环之@click点击事件获取元素示例
Nov 09 Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 #Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
Nov 24 #Javascript
概述javascript在Google IE中的调试技巧
Nov 24 #Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 #Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
Nov 23 #Javascript
值得分享的Bootstrap Table使用教程
Nov 23 #Javascript
JavaScript面试题(指针、帽子和女朋友)
Nov 23 #Javascript
You might like
mysql 字段类型说明
2007/04/27 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
php强制运行广告的方法
2014/12/01 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
JavaScript类的写法
2016/09/17 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
python实现的文件夹清理程序分享
2014/11/22 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
python实现淘宝秒杀脚本
2020/06/23 Python
python反编译学习之字节码详解
2019/05/19 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
如何基于Python按行合并两个txt
2020/11/03 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
班级课外活动总结
2014/07/09 职场文书
研修心得体会
2014/09/04 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
生产实习心得体会范文
2016/01/22 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB