檢測瀏覽器類型
由于jQuery1.9版本取消了對$.browser的支持,采用$.support來判斷瀏覽器類型
navigator.userAgent
對象和集合操作
1.處理字符串
$.trim(str)
清理字符串前后的空白
var str=" hello world! "
str = $.trim(str)
console.log(str) //result:hello world!
console.log(str.length) //result:12
2.把對象轉(zhuǎn)換為字符串
$.param
將字符串創(chuàng)建為一個序列化的數(shù)組或?qū)ο蠡纬铡T摲椒ㄌ貏e適用于一個URL地址查詢字符串或ajax請求。
var option={
user:"demo",
passwd:"12345678"
}
optionStr=$.param(option)
console.log(optionStr) //result:user=demo&passwd=12345678
console.log(optionStr.length) //result:25
3.判斷數(shù)組類型
var array = new Array()
console.log($.isArray(array))
//result: true
4.判斷函數(shù)類型
//is function
function isFun(){
}
console.log($.isFunction(isFun))
//result:true
5.判斷特殊對象
5.1檢測空對象
var array = new Array()
console.log($.isEmptyObject(array))
//result:true
5.2檢測純對象
var plainObject = new Object()
console.log($.isPlainObject(plainObject))
//result:true
5.3檢測window對象
$.isWindow(obj)
檢測一個對象是否為Window對象
5.4檢測XML文檔
$.isXMLDoc(node)
檢測一個DOM節(jié)點是否在XML文檔中
6.對數(shù)組和集合進(jìn)行迭代
$.each(collection,callback(indexArray,valueOfElement))
arrayEach = new Array("h","e","l","l","l")
$.each(arrayEach,function(name,value){
alert(name+"="+value)
})
7.生成數(shù)組
$.makeArray(obj)
將類數(shù)組結(jié)構(gòu)裝換為真正的數(shù)組結(jié)構(gòu)
如惩歉,通過$("li")
orgetEmementByTagName("li")
獲得的是一個類數(shù)組結(jié)構(gòu)吱肌,但是通過makeArray函數(shù)轉(zhuǎn)換后就是數(shù)組對象
objLi = $("li")
console.log($.isArray(objLi))
arrLi = $.makeArray(objLi)
console.log($.isArray(arrLi))
8.對數(shù)組進(jìn)行篩選
$.grep(array,function(elementOfArray,IndexInArray),[invert])
- function用來處理每個項目的對比,與each不同黍翎,第一個參數(shù)是元素盏浙,第二個參數(shù)時索引
- invert為true佩研,對callback返回true铜犬,如果為false舞终,對callback返回false
var array = new Array("1","2","3","4","5","6","7","8")
arrayGt=$.grep(array,function(value,index){
return value>=5
})
console.log(arrayGt) //result:5,6,7,8
arrayLt=$.grep(array,function(value,index){
return value>=5
},true)
console.log(arrayLt) //result:1,2,3,4
9.對數(shù)組進(jìn)行轉(zhuǎn)換
$.map(array,[callback(element,vale)])
var array = new Array("1","2","3","4","5","6","7","8")
console.log($.map(array,function(value){
return value*2
}))
//result:2, 4, 6, 8, 10, 12, 14, 16
10.把多個數(shù)組結(jié)合在一起
$.merge(first,second)
11.刪除數(shù)組中重復(fù)元素
$.unique(array)
var array = new Array("1","2","3","4","5","6","7","8","8")
console.log($.unique(array))
//result: 2, 4, 6, 8, 10, 12, 14, 16
12.在數(shù)組中查找指定值
$.inArray(value,array)
var array = new Array("1","2","3","4","5","6","7","8")
alert($.inArray("8",array))
//result:7
緩存
數(shù)據(jù)緩存的作用就是在一個元素上存取元素而避免循環(huán)引用的風(fēng)險,jQuery通過data函數(shù)實現(xiàn)數(shù)據(jù)緩存的機制
$.data(element,key,value)
- element表示要關(guān)聯(lián)數(shù)據(jù)的DOM對象
- key表示存儲的數(shù)據(jù)名
- value表示新數(shù)據(jù)值
var liObj = $("li")
$.each(liObj,function(name,index){
liObj.eq(name).data("indexLi",name) //給每一個li創(chuàng)建數(shù)據(jù)名indexLi,并用索 //引給其賦值
})
$.each(liObj,function(name,index){
console.log(liObj.eq(name).data("indexLi")) //讀取indexLi的內(nèi)容
})
//result: 0,1,2,3
$.removeData(element,[name])
var liObj = $("li")
$.each(liObj,function(name,index){
liObj.eq(name).data("indexLi",name)
})
$("li").removeData("indexLi") //刪除名稱為indexLi的緩存
$.each(liObj,function(name,index){
console.log(liObj.eq(name).data("indexLi"))
})
//result:undefined