检测浏览器类型
由于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.把对象转换为字符串
$.param
将字符串创建为一个序列化的数组或对象。该方法特别适用于一个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.判断数组类型
var array = new Array()
console.log($.isArray(array))
//result: true
4.判断函数类型
//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节点是否在XML文档中
6.对数组和集合进行迭代
$.each(collection,callback(indexArray,valueOfElement))
arrayEach = new Array("h","e","l","l","l")
$.each(arrayEach,function(name,value){
alert(name+"="+value)
})
7.生成数组
$.makeArray(obj)
将类数组结构装换为真正的数组结构
如,通过$("li")
orgetEmementByTagName("li")
获得的是一个类数组结构,但是通过makeArray函数转换后就是数组对象
objLi = $("li")
console.log($.isArray(objLi))
arrLi = $.makeArray(objLi)
console.log($.isArray(arrLi))
8.对数组进行筛选
$.grep(array,function(elementOfArray,IndexInArray),[invert])
- function用来处理每个项目的对比,与each不同,第一个参数是元素,第二个参数时索引
- 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.对数组进行转换
$.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.把多个数组结合在一起
$.merge(first,second)
11.删除数组中重复元素
$.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.在数组中查找指定值
$.inArray(value,array)
var array = new Array("1","2","3","4","5","6","7","8")
alert($.inArray("8",array))
//result:7
缓存
数据缓存的作用就是在一个元素上存取元素而避免循环引用的风险,jQuery通过data函数实现数据缓存的机制
$.data(element,key,value)
- element表示要关联数据的DOM对象
- key表示存储的数据名
- value表示新数据值
var liObj = $("li")
$.each(liObj,function(name,index){
liObj.eq(name).data("indexLi",name) //给每一个li创建数据名indexLi,并用索 //引给其赋值
})
$.each(liObj,function(name,index){
console.log(liObj.eq(name).data("indexLi")) //读取indexLi的内容
})
//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