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 相关文章推荐
JavaScript常用全局属性与方法记录积累
Jul 03 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
JS实现的网页倒计时数字时钟效果
Mar 02 Javascript
JS基于面向对象实现的放烟花效果
May 07 Javascript
javascript从定义到执行 你不知道的那些事
Jan 04 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
Sep 05 Javascript
搭建vue开发环境
Jul 19 Javascript
JS实现判断有效的数独算法示例
Feb 25 Javascript
Vue实现导航栏点击当前标签变色功能
Aug 19 Javascript
JS字符串常用操作方法实例小结
Jun 24 Javascript
基于JavaScript 实现拖放功能
Sep 12 Javascript
JS写滑稽笑脸运动效果
May 28 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 heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
浅述python中argsort()函数的实例用法
2017/03/30 Python
Numpy掩码式数组详解
2018/04/17 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
应届生自荐信范文
2014/02/21 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
工厂标语大全
2014/10/06 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
大学生党员自我评价
2015/03/04 职场文书
常住证明范本
2015/06/23 职场文书
工作会议简报
2015/07/20 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL
Java 关于String字符串原理上的问题
2022/04/07 Java/Android
Golang流模式之grpc的四种数据流
2022/04/13 Golang