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 相关文章推荐
IE6下通过a标签点击切换图片的问题
Nov 14 Javascript
jQuery实现点击该行即可删除HTML表格行
Oct 17 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
Sep 25 Javascript
jQueryUI中的datepicker使用方法详解
May 25 Javascript
浅谈JS中json数据的处理
Jun 30 Javascript
Bootstrap基本组件学习笔记之面板(14)
Dec 08 Javascript
jquery插件开发之选项卡制作详解
Aug 30 jQuery
基于Vue-cli快速搭建项目的完整步骤
Nov 03 Javascript
jQuery访问json文件中数据的方法示例
Jan 28 jQuery
vue下载excel的实现代码后台用post方法
May 10 Javascript
vue使用代理解决请求跨域问题详解
Jul 24 Javascript
JS可断点续传文件上传实现代码解析
Jul 30 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 GBK→UTF-8编码转换
2007/05/24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
10种JavaScript最常见的错误(小结)
2019/06/21 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
基于python实现把图片转换成素描
2019/11/13 Python
Python日志syslog使用原理详解
2020/02/18 Python
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
计算机专业毕业生推荐信
2013/11/25 职场文书
网上书店创业计划书
2014/01/12 职场文书
房地产广告词大全
2014/03/19 职场文书
个人求职自荐信范文
2014/06/20 职场文书
正规借条模板
2015/05/26 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP