zoukankan      html  css  js  c++  java
  • 封装一个通用选择器的简单写法

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>j</title>
    </head>
    <body>
        <div class="box">
            <div class="cute">11111</div>
            <div class="hh">aaaa</div>
            <div class="hh">bbbb</div>
            <div id="test">ccccc</div>
            <p>标签名实验</p>
        </div>
    </body>

    <script>

    function $(param, obj) {
        obj = obj || document;
        //根据id名查找元素
        if (param[0] === "#")
            return document.getElementById(param.slice(1));
        // 根据指定类名查找元素
        if (param.indexOf(".") === 0)
            return getByClass(param.substring(1), obj);
        //根据标签名查找
        return obj.getElementsByTagName(param);
    }

    //类名查找元素实现方法
    function getByClass(className, obj) {
        obj = obj || document;
        if (obj.getElementsByClassName)
            return obj.getElementsByClassName(className);

        var result = [];
        var tags = obj.getElementsByTagName("*");
        for (var i = 0, len = tags.length; i < len; i++) {
            var classNames = tags[i].className.split(" "); // 获取当前遍历元素的类名
            for (var j = 0, l = classNames.length; j < l; j++) {
                if (className === classNames[j]) { // 找到所需要进行查找的一个元素
                    result.push(tags[i]);
                    break;
                }
            }
        }

        return result;
    }

      $("#test").style.background = "red";
        $(".hh")[0].style.background = "blue";
        $("p")[0].style.background = "green";

    </script>
    </html>

  • 相关阅读:
    C# 调用c++ 生成的dll
    【转】Unity3D的主要类图
    【转】Unity3D开发七惑
    Unity3D 3.5 之windows平台coding及debug环境小结
    __FILE__ __LINE__ C++ 宏定义 调试
    代码换行格式(inconsistent line endings) Windows(CR LF) 修改
    【转】 QGLWidget类
    帧缓冲区对象
    【转】kd树
    【转】unity Mathf 数学运算(C#)
  • 原文地址:https://www.cnblogs.com/html-go/p/5823476.html
Copyright © 2011-2022 走看看