function $(selector){
  //获取第一个字符
  var firstLetter = selector.charAt(0);
  //对第一个字符进行判断
  switch(firstLetter){
    //#则为id名称;
    case '#' : return idSelector(selector);
    break;
    //.则为class;
    case '.' : return classSelector(selector);
    break;
    default : return tagNameSelector(selector);
  }
  //idSelector
  function idSelector(idS){
    return document.getElementById(idS.substring(1));
  }
  //tagNameSelector;
  function tagNameSelector(tagNameS){
    return document.getElementsByTagName(tagNameS);
  }
  //classSelector
  function classSelector(classS){
  //兼容处理
  if(docuent.getElementsByClassName){
    return document.getElementsByClassName(classS.substring(1));
  }else{
    //放置dom节点的数组
    var arr = [];
    //如果浏览器不兼容getElementsByClassName
    //获取页面中的所有的元素
    var arrTag = document.getElementsByTagName('*');
    //利用正则匹配找到对应的标签
    var reg = new RegExp('(^|\\s)'+classS.substring(1)+'($|\\s)','g');
    //遍历所有的标签
    for(var i = 0 , k = arrTag.length ; i < k ; i++){
    //如果标签拥有对用的class名称 push 到一个数组中
      console.log(arrTag[i].className);
      if(reg.test(arrTag[i].className)){
        arr.push(arrTag[i]);
      }
   }
  return arr;
    }
  }
}

js封装 DOM获取的更多相关文章

  1. 原生js封装dom操作库

    var utils = (function(window) { var flag = "getComputedStyle" in window; function win(attr ...

  2. 原生js封装cookie获取、设置及删除

    使用cookie(key,value,options) 参数key,value,options(可选) function cookie(key,value,options){ if(typeof va ...

  3. 原生js封装的获取某一天是当年的第几周方法

    function getWeek(str){ //str格式为yyy-mm-dd //周日归到了本周 var d=new Date(str); var day=d.getDay(); var orig ...

  4. js封装设置获取cookie

    var docCookies = { getItem: function (sKey) { return decodeURIComponent(document.cookie.replace(new ...

  5. 自己封装的一个js方法用于获取显示的星期和日期时间

    自己封装的一个js方法用于获取显示的星期和日期时间 /** * 获取用于显示的星期和日期时间 * @param date * @returns {string} */ function getWeek ...

  6. js的DOM对象

    1.js的Array对象           ** 创建数组(三种)                          - var arr1 = [1,2,3];                    ...

  7. jQuery对象与JS原生dom对象之间的转换

    jQuery就是JS的一个扩展库,工具库,提供很多方便快捷的方法,所以将JS对象转换为jQuery对象后,能更方便地操作这个对象.但是jQuery对象也不是万能的,有一些JS对象有的能,jQuery对 ...

  8. Js之DOM(一)

    ----------------------------------------------------------------------------------------------第一部分 D ...

  9. JS操作DOM对象——JS基础知识(四)

    一.JavaScript的三个重要组成部分 (1)ECMAScript(欧洲计算机制造商协会) 制定JS的规范 (2)DOM(文档对象模型)重点学习对象 处理网页内容的方法和接口 (3)BOM(浏览器 ...

随机推荐

  1. IBM RAD中集成Websphere启动后无法debug解决办法

    问题描述: IBM Rational Application Developer for WebSphere软件在启动WebSphere的时候无法以debug模式启动,debug启动后显示为start ...

  2. 高级查询MYsql(二) 练习

    一.单词部分 ①exist存在②temp临时的③district区域 ④content内容⑤temporary暂时的 二.预习部分 1.表连接都可以用子查询替换吗 是的 2.检测某列是否存在某个范围可 ...

  3. java中代码的注释和快捷

    添加必要的注释,对一个有责任心.有道德模范的前端必须具备的好习惯, 可以大大提高代码的可维护性.可读性. java代码注释快捷键:ctrl+shift+/首先熟悉一下html.css.js的注释的写法 ...

  4. MySql数据库操作命令

    数据库 database 命令 ********************************* DATABASE 创建数据库 CREATE DATABASE haodlDB DEFAULT CHA ...

  5. HttpsUtils

    package io.renren.modules.jqr.util; import java.io.BufferedReader; import java.io.InputStream; impor ...

  6. sift、surf、orb 特征提取及最优特征点匹配

    目录 sift sift特征简介 sift特征提取步骤 surf surf特征简介 surf特征提取步骤 orb orb特征简介 orb特征提取算法 代码实现 特征提取 特征匹配 附录 sift si ...

  7. Linq查找最大值max最小值min效率比较

    对linq查找极值的几种方法做一个效率上的比较 // 首先创建了一个10_000_000大小的PointF列表 var rdn = new Random(); var points = Enumera ...

  8. Java课堂 动手动脑6

    一.下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d;d=m;d=(Dog)m;d=c;c=(Cat)m; 先进行自我判断, 1.代码: class Mammal{} c ...

  9. 【原创】TextCNN原理详解(一)

    ​ 最近一直在研究textCNN算法,准备写一个系列,每周更新一篇,大致包括以下内容: TextCNN基本原理和优劣势 TextCNN代码详解(附Github链接) TextCNN模型实践迭代经验总结 ...

  10. Power Designer导出模型的sql加注释-Oracle语句

    第一步:Database-->Edit Current DBMS 第二步: 然后分别将 Script-->Objects-->Table-->TableComment Scri ...