05-jQuery静态方法

$.each(collection, callback(indexInArray, valueOfElement))

通用的迭代函数,可以用来迭代数组和对象,数组和伪数组是通过length来迭代,对象是通过属性名称来迭代。

$.each()类似的$(selector).each()是不一样的, $(selector).each()是专门用来遍历jQuery对象的,而$.each()可用于任何可迭代对象,不论是对象还是数组。

迭代数组时,返回索引值和对应的数值,作为参数,当然也可以通过this关键字获取:

var arr = [1, 2, 3, 4, 5]
$.each(arr, function (index, value) {
    console.log("第" + index + "项:" + value);
})

image-20200618085629486

迭代对象是,返回键值对,作为参数:

var obj = {"obj1": 1,"obj2": 2}
$.each(obj, function (key, value) {
    console.log(key + ":" + value);
})

image-20200618085649504

我们可以在callback内返回false用来终止$.each(),返回非false会跳过正在执行的单个迭代,相当于一个循环中的continue语句:

var arr = [1, 2, 3, 4, 5]
$.each(arr, function (index, value) {
    if (index == 1) {
        console.log("执行下一个  each()")
        return true
    }
    if (index == 3) {
        console.log("终止 each()")
        return false
    }
    console.log("第" + index + "项:" + value);
})

image-20200618085903412

$.map()

$.trim(str)

$.trim()函数会移除字符串开始和结尾处的所有换行符,空格,制表符(Tab),如何这些空字符在中间,则不被去除。

$(function () {
    var str = "     \n测试字\n  符串\n  "
    console.log($.trim(str));
});

image-20200618104709535

$isWindow(obj)

$.isWindow()函数会判断参数是否为一个window对象。这个函数在jQuery中用途很广,主要是判断我们操作的是不是一个浏览器窗口(当前窗口或者是iframe);

$(function () {
    var isWindow = $.isWindow(window);
    console.log("window is Window?\n" + isWindow)
});

image-20200618105238928

$.isArray(arr)

$.isArray(arr)函数通常用于判断一个对象是不是数组,而不是类数组。

$(function () {
    var array = [1, 2, 3, 4]
    var array2 = {0:1, 1:2, lenght:2}
    console.log("array is array?\n" + $.isArray(array))
    console.log("array2 is array?\n" + $.isArray(array2))
});

image-20200618105847176

$.isFunction(fn)

$.isFunction(fn)函数用来确定参数是否为一个Javascript 函数。

$(function () {
    var func = function () {}
    var arr = [1,2,3]
    console.log("func is function?" + $.isFunction(func))
    console.log("alert is function?" + $.isFunction(alert))
    console.log("arr is function?" + $.isFunction(arr))
});

image-20200618110815551

$.holdReady()

$.holdReady()可以用来暂停(true)或恢复(false).ready() 事件的执行。

为了延迟调用.ready()事件,首先调用$.holdReady(true),当准备条件充足是,调用$.holdReady(false),当然如果有多个条件,也可设置多个hold,每设置一个hold需要调用一次$.holdReady(true), 每释放一次hold同样需要释放一次$.holdReady(false),当所有的hold都被释放了.ready()才会被执行。

$.holdReady(true);
$.getScript("myplugin.js", function() {
  $.holdReady(false);
});
posted @ 2020-06-18 11:46  一生亦木  阅读(25)  评论(0编辑  收藏  举报