Javascript封装id、class与元素选择器方法示例


Posted in Javascript onMarch 13, 2017

由于各个浏览器都支持的选择方法只有如下三种:

     1、document.getElementById()

     2、document.getElementsByName()

     3、document.getElementsByTagName()

所以在封装选择器的时候要考虑浏览器的兼容性。

示例代码如下:

<script>//封装id选择器
  function $(selector){
    var c=selector.substring(0,1);//获取第一个字符
    if(c=="#"){
      return document.getElementById(selector.substring(1,selector.length));//返回相应的元素
    }
  }
  
  
  //封装class选择器
  function $(selector){
    var className=selector.substring(1);//从索引为1的元素往后取
    //判断浏览器是否支持getElementsByClassName
    if(document.getElementsByClassName){
      return document.getElementsByClassName(className)
      //document.querySelectorAll('.cls')兼容性有问题
    }else{
      //document.getElementsByTagName('*')+正则表达式
      //\s空白字符 ^开始 $结束
      var reg=new RegExp('^|\\s'+className+'$|\\s');
      var elems=document.getElementsByTagName("*");//获取页面中所有元素
      var arr=[];//保存获取到的指定className的元素
      for(var i=0;i<elems.length;i++){
        if(reg.test(elems[i].className)){//如果和模式匹配上
          arr.push(elem[i]);
        }
      }
      return arr;
    }
  }
  
  //封装标签选择器  
  function $(element){
    return document.getElementsByTagName(element);
  }
 </script>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
20条学习javascript的编程规范的建议
Nov 28 Javascript
js表头排序实现方法
Jan 16 Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 Javascript
node.js实现快速截图
Aug 27 Javascript
Yarn的安装与使用详细介绍
Oct 25 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
Jun 05 Javascript
vue interceptor 使用教程实例详解
Sep 13 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
Jun 21 Javascript
JS实现骰子3D旋转效果
Oct 24 Javascript
H5实现手机拍照和选择上传功能
Dec 18 Javascript
详解Webpack抽离第三方类库以及common解决方案
Mar 30 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
Jul 17 Javascript
原生js实现吸顶效果
Mar 13 #Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 #Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 #Javascript
深入理解Node.js中的进程管理
Mar 13 #Javascript
jQuery简易时光轴实现方法示例
Mar 13 #Javascript
JavaScript评论点赞功能的实现方法
Mar 13 #Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
Mar 13 #Javascript
You might like
PHP之变量、常量学习笔记
2008/03/27 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
使用python3构建文件传输的方法
2019/02/13 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
Python 如何查找特定类型文件
2020/08/17 Python
英国现代市场:ARKET
2019/04/10 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
电子商务专业自我鉴定
2013/12/18 职场文书
中专自我鉴定
2014/02/05 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
安全生产月宣传标语
2014/10/06 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python