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 相关文章推荐
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
Oct 10 Javascript
ajax异步刷新实现更新数据库
Dec 03 Javascript
JavaScript基础语法、dom操作树及document对象
Dec 02 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
May 03 Javascript
学好js,这些js函数概念一定要知道【推荐】
Jan 19 Javascript
js 去掉字符串前后空格实现代码集合
Mar 25 Javascript
详解webpack+vue-cli项目打包技巧
Jun 17 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
Jun 04 Javascript
微信小程序当前时间时段选择器插件使用方法详解
Dec 28 Javascript
Vue组件模板的几种书写形式(3种)
Feb 19 Javascript
微信小程序单选框自定义赋值
May 26 Javascript
请求时token过期自动刷新token操作
Sep 11 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/06/05 PHP
测试php函数的方法
2013/11/13 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
jQuery 性能优化指南 (1)
2009/05/21 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
Python脚本实现格式化css文件
2015/04/08 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
社团2014年植树节活动总结
2014/03/11 职场文书
听课评语大全
2014/04/30 职场文书
在职员工证明书
2014/09/19 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
处理canvas绘制图片模糊问题
2022/05/11 Javascript