不为成仙,只为在这红尘中等你回来。

您现在的位置是:网站首页>>jQuery

jQuery 静态方法

2019年4月25日 23:49 | 分类:jQuery | 标签: jQuery

jQuery 核心函数

<script src="js/jquery-1.12.4.js"></script>
<script>
    // $(); 代表调用 jQuery 的核心函数

    // 1.接收一个函数
    $(function () {
        alert("hello world");

        // 2.接收一个字符串
        // 2.1 接收一个字符串选择器
        // 返回一个 jQuery 对象,对象中保存了找到的 DOM 元素
        var $box1 = $(".box1");
        var $box2 = $("#box2");
        console.log($box1);
        console.log($box2);

        // 2.2 接收一个字符串代码片段
        // 返回一个 jQuery 对象,对象中保存创建的 DOM 元素
        var $p = $("<p>我是段落</p>");
        console.log($p);
        $box1.append($p);

        // 3.接收一个 DOM 元素
        // 会被包装成 jQuery 对象返回。
        var span = document.getElementsByTagName("span")[0];
        console.log(span);
        var $span = $("span");
        console.log($span);
    });
</script>

jQuery 对象

<script src="js/jquery-1.12.4.js"></script>
<script>
    $(function () {
        /**
         * 1.什么是 jQuery 对象?
         * jQuery 对象是一个伪数组
         *
         * 2.什么是伪数组?
         * 有 0 到 length-1 的属性,并且有 length 属性
         */
        $div = $("div");
        console.log($div);

        /* 输出结果
        jQuery.fn.init(3) [div, div, div, prevObject: jQuery.fn.init(1), context: document, selector: "div"]
        0: div
        1: div
        2: div
        context: document
        length: 3
        prevObject: jQuery.fn.init [document, context: document]
        selector: "div"
        __proto__: Object(0)
        */
    });
</script>

jQuery 静态方法和实例方法

<script>
    // 1.定义一个类
    function AClass() {
    }

    // 2.给这个类添加一个静态方法
    // 直接添加给类的就是静态方法
    AClass.staticMethod = function () {
        alert("staticMethod");
    };

    // 静态方法通过类名调用
    AClass.staticMethod();

    // 3.给这个类添加一个实例方法
    AClass.prototype.instanceMethod = function () {
        alert("instanceMethod");
    };

    // 实例方法通过类的实例调用
    var a = new AClass();
    a.instanceMethod();
</script>

jQuery-each 方法

<script src="js/jquery-1.12.4.js"></script>
<script>
    var arr = [1, 3, 5, 7, 9];
    var obj = {0:1, 1:3, 2:5, 3:7, 4:11, length:5};
    /**
     * 第一个参数:value
     * 第二个参数:index
     * 注意点:原生的 forEach 方法只能遍历数组,不能遍历伪数组
     */
    arr.forEach(function (value, index) {
        // console.log(index, value);
    });

    // obj.forEach(function (value, index) {
    //     console.log(index, value);
    // });
    /*Uncaught TypeError: obj.forEach is not a function*/

    /**
     * 1.利用 jQuery 的 each 静态方法遍历数组
     * 第一个参数:index
     * 第二个参数:value
     */
    $.each(arr, function (index, value) {
        console.log(index, value);
    });

    // jQuery 的 each 方法遍历伪数组
    $.each(obj, function (index, value) {
        console.log(index, value);
    })
</script>

jQuery-map 方法

<script src="js/jquery-1.12.4.js"></script>
<script>
    var arr = [1, 3, 5, 7, 9];
    var obj = {0:1, 1:3, 2:5, 3:7, 4:11, length:5};
    // 1.利用原生 JS 的 map 方法遍历
    arr.map(function (value, index, array) {
        console.log(index, value, array);
    });

    // 不能遍历伪数组(报错)
    // obj.map(function (value, index, array) {
    //     console.log(index, value, array);
    // })


    /**
     * 第一个参数:要遍历的数组
     * 第二个参数:每遍历一个元素之后执行的回调函数
     * 回调函数的参数:
     *     第一个参数:遍历到的元素
     *     第二个参数:遍历到的索引
     * 注意点:和 jQuery 中的 each 静态方法一样,map 静态方法也可以遍历伪数组
     */
    $.map(arr, function (value, index) {
        console.log(index, value);
    });

    var res = $.map(obj, function (value, index) {
        console.log(index, value);
    });

    var res2 = $.each(obj, function (index, value) {
        console.log(index, value);
    });


    /**
     * jQuery 中的 each 静态方法和 map 静态方法的区别:
     * each 静态方法默认的返回值就是遍历的对象
     * map 静态方法默认的返回值是一个空数组
     *
     *
     * each 静态方法不支持在回调函数中对遍历的数组进行处理
     * map 静态方法可以在回调函数中通过 return 对遍历的数组进行处理,然后生成新的数组返回
     */
    console.log(res);
    console.log(res2);
</script>

jQuery 中的其它静态方法

<script src="js/jquery-1.12.4.js"></script>
<script>
    var str = "    hello    ";
    var arr = [1, 3, 5, 7, 9];
    var arrlike = {0:1, 1:3, 2:5, 3:7, 4:11, length:5};
    var obj = {"name": "fwr", "age": 33};
    var fn = function () {};
    var w = window;
    /**
     * $.trim();
     * 作用:去除字符串两端的空格
     * 参数:string
     * 返回值:新的 string
     */
    var res = $.trim(str);

    console.log("----" + str + "----");
    console.log("----" + res + "----");

    /**
     * $.isWindow();
     * 作用:判断传入的对象是否是 window 对象
     * 返回值:true/false
     */


    /**
     * $.isArray();
     * 作用:判断传入的对象是否是真数组
     * 返回值:true/false
     */
    res = $.isArray(arr);
    console.log(res);
    res2 = $.isArray(arrlike);
    console.log(res2);


    /**
     * $.isFunction();
     * 作用:判断传入的对象是否是一个函数
     * 返回值:true/false
     */
    var res = $.isFunction(w);
    console.log(res);
</script>

jQuery-holdReady 方法

<script src="js/jquery-1.12.4.js"></script>
<script>
    /**
     * $.holdReady(true);
     * 作用:暂停 ready 执行
     */
    $.holdReady(true);
    $(document).ready(function () {
        alert("ready")
    });
</script>
</head>
<body>
<button>恢复ready事件</button>
<script>
    var btn = document.getElementsByTagName("button")[0];
    btn.onclick = function () {
        // alert("btn");
        $.holdReady(false); // 恢复 ready 执行
    }
</script>