zoukankan      html  css  js  c++  java
  • 选择器小框架

            其实任何语言的操作也就是4个字:增 删 改 查。整个网页中,我们都一直强调HTML  CSS  JS分离,也就是行为,样式,结构互相独立。通过修改CSS样式达到美观的效果。在实际开发中,我们不得不用JS的动态形式去修改样式都操作。通过之前我们对JS的基础学习,我们也学习过很多获得元素的方式 。比如:document.getElementById(),获得单个元素。document.getElementsByTagName();获得一组元素。document.children,获得所有的子元素。等等方式.
    当然我们也有了另一个选择器,document.querySelector(),获得单个元素,document.querySelectorAll()获得一组元素。不过这个方法,有兼容问题。一些低版本的浏览器不支持这个方法。那么我们有没有更好的方式来整合到一起呢?如果浏览器直持,那就用querySelector这个选择器,如果不支持就用传统的选择器来获得元素。我自己也总结了一下,就用querySelector这个选择器写了一个小工具,后续我再把改进版的工具分享给大家。
          还是用闭包的方式来实现,方便调用,变量也不会污染,也符合耦合思想和组件化和模块化的主题。闭包的使用在这就不做过多的解释了。关于闭包,主流的写法大概就两种,其实都不难理解,我就先给大家看一下。(function(){})()和(function(){}())。前者见的比较多,后者可能大家偶尔会看到,我自己习惯性的喜欢用第二种。写这个小工具,我会用到到数组的的一些方式。以及面向对象的一些小技巧,上下调用(call与apply),还用了回调函数的技巧。

          话不多说,上代码,注释我也就写在一起了。

    (function(window, undefined) {}(window))
        //拆分FOR
        function each(arr, callback) {
            //for循环
            for(var i = 0; i < arr.length; i++) {
                //如果满足条件跳出,用call连接
                if(callback.call(arr[i], i, arr[i]) === false) {
                    //跳出
                    break;
                }
            }
            //返回数组
            return arr;
        };
        //选择器
        function select(selector, results) {
            //申明数组
            results = results || [];
            //用数组接收,,利秀apply,数组放前面   
            Array.prototype.push.apply(results, document.querySelectorAll(selector));
            //返回数组
            return results;

        }
        //定义工具
        window.ddTools=window.dd={
            each:each,
            select:select
        }

    }(window))

  • 相关阅读:
    求解一元二次方程
    常用电脑软件
    c语言的布尔量
    unsigned int数据类型最大数
    int数据类型的最大数
    习题6-8 统计一行文本的单词个数
    习题6-6 使用函数输出一个整数的逆序数
    习题6-5 使用函数验证哥德巴赫猜想
    习题6-4 使用函数输出指定范围内的Fibonacci数
    C#委托、泛型委托
  • 原文地址:https://www.cnblogs.com/ruose/p/5776058.html
Copyright © 2011-2022 走看看