JavaScript封装id、class与标签选择器的兼容处理方案

作者:页面旅途

时间:2026-10-21

浏览:638

本文介绍了在JavaScript中封装id、class及标签选择器的实现方法。针对各浏览器仅支持document.getElementById、getElementsByName和getElementsByTagName三种基础方法的情况,文章提供了处理浏览器兼容性的代码示例,详细展示了如何根据选择器前缀区分处理逻辑,并封装了相应的获取元素函数。

文章目录

JavaScript封装id、class与标签选择器的兼容处理方案

目前各主流浏览器共同支持的选择方法主要包含以下三种:

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>

总结

以上就是本文的全部内容,希望上述内容能对各位的学习或工作有所帮助。若有任何疑问,欢迎留言交流,感谢大家对本站的支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章