$.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);
})
迭代對象是,返回鍵值對,作爲參數:
var obj = {"obj1": 1,"obj2": 2}
$.each(obj, function (key, value) {
console.log(key + ":" + value);
})
我們可以在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);
})
$.map()
$.trim(str)
$.trim()
函數會移除字符串開始和結尾處的所有換行符,空格,製表符(Tab),如何這些空字符在中間,則不被去除。
$(function () {
var str = " \n測試字\n 符串\n "
console.log($.trim(str));
});
$isWindow(obj)
$.isWindow()
函數會判斷參數是否爲一個window對象。這個函數在jQuery中用途很廣,主要是判斷我們操作的是不是一個瀏覽器窗口(當前窗口或者是iframe);
$(function () {
var isWindow = $.isWindow(window);
console.log("window is Window?\n" + isWindow)
});
$.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))
});
$.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))
});
$.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);
});