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 相关文章推荐
把input初始值不写value的具体实现方法
Jul 04 Javascript
使用js在页面中绘制表格核心代码
Sep 16 Javascript
javascript日期对象格式化为字符串的实现方法
Jan 14 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
Mar 21 Javascript
jQuery获得子元素个数的方法
Apr 14 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
Jan 25 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
Mar 25 Javascript
jQuery基于Ajax方式提交表单功能示例
Feb 10 Javascript
JavaScript队列的应用实例详解【经典数据结构】
Apr 12 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
Jun 09 Javascript
Vue中的无限加载vue-infinite-loading的方法
Apr 08 Javascript
vue 虚拟DOM的原理
Oct 03 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
php中memcache 基本操作实例
2015/05/17 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
Python实现简易Web爬虫详解
2018/01/03 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
Python gevent协程切换实现详解
2020/09/14 Python
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
特色冷饮店创业计划书
2014/01/28 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
读书笔记怎么写
2015/07/01 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android