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);
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章