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 相关文章推荐
javascript XML数据显示为HTML一例
Dec 23 Javascript
ExtJs中简单的登录界面制作方法
Aug 19 Javascript
使用Math.floor与Math.random取随机整数的方法详解
May 07 Javascript
Javascript setInterval的两种调用方法(实例讲解)
Nov 29 Javascript
JavaScript中跨域调用Flash的方法
Aug 11 Javascript
javascript的BOM
May 03 Javascript
PassWord输入框代码分享
Jun 07 Javascript
Axios学习笔记之使用方法教程
Jul 21 Javascript
vue和webpack项目构建过程常用的npm命令详解
Jun 15 Javascript
微信小程序实现漂亮的弹窗效果
May 26 Javascript
vue-cli3.X快速创建项目的方法步骤
Nov 14 Javascript
JSONObject与JSONArray使用方法解析
Sep 28 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
几种显示数据的方法的比较
2006/10/09 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
javascript全局变量封装模块实现代码
2012/11/28 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
Angularjs 基础入门
2014/12/26 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
javascript 判断当前浏览器版本并判断ie版本
2017/02/17 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
收集的几个Python小技巧分享
2014/11/22 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
Python求凸包及多边形面积教程
2020/04/12 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
影视艺术学院毕业生自荐信
2013/11/13 职场文书
好人好事演讲稿
2014/09/01 职场文书
护士求职简历自我评价
2015/03/10 职场文书
新手必备Python开发环境搭建教程
2021/05/28 Python
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python
利用Redis实现点赞功能的示例代码
2022/06/28 Redis