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新闻滚动插件 jquery.roller.js
Jun 27 Javascript
js工具方法弹出蒙版
May 08 Javascript
jquery实现的网页自动播放声音
Apr 30 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 Javascript
使用Javascript写的2048小游戏
Nov 25 Javascript
详解JavaScript设计模式开发中的桥接模式使用
May 18 Javascript
js 提交form表单和设置form表单请求路径的实现方法
Oct 25 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
JS实现中英文混合文字溢出友好截取功能
Aug 06 Javascript
jquery插件开发模式实例详解
Jul 20 jQuery
解决vue 退出动画无效的问题
Aug 09 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
Oct 15 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的安全
2006/10/09 PHP
php 静态化实现代码
2009/03/20 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
php实现可逆加密的方法
2015/08/11 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
python多线程用法实例详解
2015/01/15 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
绿化先进工作者事迹材料
2014/01/30 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
财务检查整改报告
2014/11/06 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
道歉的话语大全
2015/05/12 职场文书
旷工检讨书大全
2015/08/15 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
python 常用的异步框架汇总整理
2021/06/18 Python