分享几个实用的jquery工具函数

1.$.browser对象属性 

  属性列表      说明 
  webkit       webkit相关浏览器则返回true,否则返回false,如google,傲游。 
  mozilla       mozilla相关浏览器则返回true,否则返回false,如火狐 
  safari         safari相关浏览器则返回true,否则返回false,如safari 
  opera        opera相关浏览器则返回true,否则返回false,如opera 
  msie        msie相关浏览器则返回true,否则返回false,如IE,360,搜狗 
  version       返回对应浏览器的版本 

$(function () {
    if ($.browser.msie) {
        alert("IE浏览器");
    }
    if ($.browser.webkit) {
        alert("webkit浏览器");
    }
    if ($.browser.mozilla) {
        alert("mozilla浏览器");
    }
    if ($.browser.safari) {
        alert("safari浏览器");
    }
    if ($.browser.opera) {
        alert("opera浏览器");
    }
    alert($.browser.version);
})

 

2.$.each()

  遍历数组。

$(function () {
      var arr = { "张三": "23","李四": 22,"王五": "21" };
      $.each(arr, function (index, value) {
                document.write(index + ":");
                document.write(value + "  ");
       });
   }) ;
//输出: 张三:23    李四:22   王五:21 

3.$.grep()  

  筛选符合条件的元素,返回一个新数组 
  语法:$.grep(Arrar,fn(value,index));  要注意下回调函数的参数的顺序,第一个是值,第二个是索引。 
  $.grep(Arrar,fn(value,index),[bool]);  第三个参数表示是否取反,true表示取反,false表示不取反。

$(function () {
    var arr = [2, 5, 34, 22, 8];
    var arr1 = $.grep(arr, function(value, index) {
        return index <= 2 && value < 10;
    })
    document.write(arr1.join());  //输出2,5
})

4.$.map() 

  改变函数内的数据,接受一个数组或类数组对象作为参数

$(function () {
     var arr = [2, 5, 34, 22, 8];
     var arr1 = $.map(arr, function (value, index) {
           if (value > 5 && index < 3) {
                 return value - 10;
            }
      })
     document.write(arr.join() + ""); //2,5,34,22,8  
    //可以看到原数组不改变 document.write(arr1.join()); //24  新数组只获得了操作之后的结果
 }) 

5.$.inArray() 

  如果数组中存在被搜索元素,则返回被搜索元素的索引 

$(function () {
    var arr = [1, 2, 3, 4, 5];
    alert($.inArray(4,arr));  //弹出 3
})

6.$.trim() 
  去除字符串两边的空格 

 

7.$.param() 
  序列化成url字符串,$.param(obj,[bool]);  第二个参数为可选参数,表示是否浅层序列化

$(function () {
    var man = { Name: "张飞", Age: 23 };
    var str = $.param(man);
   document.write(str); //Name=%E5%BC%A0%E9%A3%9E&Age=23
   var str1 = decodeURI(str);
   document.write("" + str1);  //Name=张飞&Age=23
})

8.$.makeArray() 
  将数组或类数组对象的属性复制到一个新的数组(真的是数组)中,并返回该新数组。 

var arr = [1,3,5,7,9];
$(function () {
    var arr1 = $.makeArray(arr);
    document.write(arr1.join());  //输出 1,3,5,7,9
})

9.$.merge() 
  该函数接受两个数组或类数组对象,将第二个参数附加到第一个参数上面,返回第一个参数,第一个数组会修改,第二个不会。

var arr1 = [1, 3, 5, 7, 9];
var arr2 = [2, 4, 6, 8, 10];
$(function () {
     var arr3 = $.merge(arr1, arr2);
     document.write(arr1.join() + "");    //1,3,5,7,9,2,4,6,8,10
     document.write(arr2.join() + "");    //2,4,6,8,10
     document.write(arr3.join() + "");    //1,3,5,7,9,2,4,6,8,10
 })

10.$.parseJSON() 
  该函数会解析JSON格式的字符串,并返回解析结果(对象)。 类似于JSON.parse(),注意:jQuery只定义了JSON解析函数,并没有定义序列化函数

var man = { name: "张三", age: 23 };
var str = JSON.stringify(man);
document.write(str + ""); //{"name":"张三","age":23} 
var man1 = $.parseJSON(str);
document.write(man1.name + man1.age); //张三23

11.$.proxy() 
  类似于Function对象的bind()方法,接受函数作为第一个参数,对象作为第二个参数,并返回一个新函数,该函数会作为第二个参数对象的方法调用。

$(function () { 
    var obj = {
        name: "John",
        test: function () {
            alert(this.name); //当id为test的按钮点击时,弹出姓名  
            $("#test").unbind("click", obj.test); 
            //并取消事件绑定(下次再点击不会弹出姓名)
         }
    };
    $("#test").click(jQuery.proxy(obj, "test")); //绑定object对象里面的方法test 
})                    

12.$.unique(array) 
  删除元素数组中的重复元素 

$(function () { 
    var arr = [1, 2, 3, 2, 1];
    jQuery.unique(arr);
    alert(arr.join()); //返回  3,2,1 
})

13.$.extend() 
  合并对象中的元素 

$(function(){
    var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"});
   alert(result.name); //输出 Jerry 后面的会覆盖前面的,result始终只是一个对象 
})

要特别注意的一点是:后面的值会覆盖前面同名的值。 

14.测试操作

  返回true or  false

$.isArray(obj)          检测参数是否是数组
$.isFunction(obj)         检测参数是否是一个函数
$.isEmptyObject(obj)       检测参数是否是一个空对象
$.isPlainObject(obj)       检测参数是否是一个纯粹对象,即对象是否通过{}或new Object()关键字创建。
$.contains(container,contained)  检测一个DOM节点是否包含另一个DOM节点。是则返回true否则表示false。注意参数是DOM对象并非jQuery对象。

 

posted @ 2016-03-08 11:36  cqingt  阅读(179)  评论(0编辑  收藏  举报