• 分享几个实用的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对象。
  • 相关阅读:
    Mybatis和Hibernate
    SpringMVC运行原理
    HTML中class属性里有多个属性值
    json对象(增加数据)
    Ajax请求
    <url-pattern>里的/和/*
    mysql忘记密码
    Eclipse无法正常连接mysql8.0.20
    a+1和&a+1
    可重入函数与不可重入函数
  • 原文地址:https://www.cnblogs.com/cqingt/p/5253389.html
Copyright © 2020-2023  润新知