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工作常用实例 使用AJAX使网页进行异步更新
Jul 26 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
Sep 14 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
Oct 24 Javascript
三分钟带你玩转jQuery.noConflict()
Feb 15 Javascript
Node.js读写文件之批量替换图片的实现方法
Sep 07 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
Apr 23 Javascript
jQuery版AJAX简易封装代码
Sep 14 Javascript
深入理解JS中的Function.prototype.bind()方法
Oct 11 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
Aug 26 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
Sep 21 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
Sep 21 Javascript
Vue组件基础用法详解
Feb 05 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 array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
python实现ID3决策树算法
2017/12/20 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
英国假发网站:Hothair
2018/02/23 全球购物
RealTek面试题
2016/06/28 面试题
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
数学专业毕业生自荐信
2013/11/10 职场文书
抄作业检讨书
2014/02/17 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
英语导游词
2015/02/13 职场文书
婚姻出轨保证书
2015/05/08 职场文书
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
零基础学java之循环语句的使用
2022/04/10 Java/Android