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+select(multiple) 实现下拉框输入值
May 21 Javascript
jQuery入门介绍之基础知识
Jan 13 Javascript
利用BootStrap弹出二级对话框的简单实现方法
Sep 21 Javascript
JS+CSS3制作炫酷的弹窗效果
Nov 08 Javascript
jQuery Easyui datagrid连续发送两次请求问题
Dec 13 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
Jun 13 Javascript
如何在Vue.js中实现标签页组件详解
Jan 02 Javascript
layui异步加载table表中某一列数据的例子
Sep 16 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
Mar 07 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 Javascript
keep-alive保持组件状态的方法
Dec 02 Javascript
原生js实现下拉框选择组件
Jan 20 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
3种平台下安装php4经验点滴
2006/10/09 PHP
坏狼的PHP学习教程之第1天
2008/06/15 PHP
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
[对联广告] JS脚本类
2006/08/27 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
js中document.write的那点事
2014/12/12 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
python实现飞机大战项目
2020/03/11 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
幼儿园新学期寄语
2014/01/18 职场文书
图书室管理制度
2014/01/19 职场文书
委托书的格式
2014/08/01 职场文书
MySQL窗口函数的具体使用
2021/11/17 MySQL