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);
})
迭代对象是,返回键值对,作为参数:
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);
});