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获取元素文档大小、偏移和位置和滚动条位置的方法集合
Jan 12 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
May 19 Javascript
javascript:void(0)是什么意思示例介绍
Nov 17 Javascript
Js 导出table内容到Excel的简单实例
Nov 19 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
Mar 07 Javascript
详细分析单线程JS执行问题
Nov 22 Javascript
angular ng-model 无法获取值的处理方法
Oct 02 Javascript
ajax与jsonp的区别及用法
Oct 16 Javascript
使用ECharts实现状态区间图
Oct 25 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
Mar 10 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
原生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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
简单介绍Python中的JSON模块
2015/04/08 Python
python将文本转换成图片输出的方法
2015/04/28 Python
python发送告警邮件脚本
2018/09/17 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
如何在Python对Excel进行读取
2020/06/04 Python
Python requests接口测试实现代码
2020/09/08 Python
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
母校寄语大全
2014/04/10 职场文书
天地会口号
2014/06/17 职场文书
Python标准库pathlib操作目录和文件
2021/11/20 Python
Python序列化模块JSON与Pickle
2022/06/05 Python