jQuery之工具函数

检测浏览器类型

由于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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值