实例解析jQuery工具函数(2)

$(function () { var arr = [1, 2, 3, 2, 1]; document.write(jQuery.isArray(arr));  //返回true var str = "123"; document.write(jQuery.isArray(str));  //返回false }) $(function () { var f = fun1; alert($.isFunction(fun1));  //返回true }) function fun1() { } $(function () { var obj1 = {}; var obj2 = { name: "张飞" }; alert($.isEmptyObject(obj1));  //返回true  obj1是空对象 alert($.isEmptyObject(obj2));  //返回false  obj2不是空对象 }) $(function () { var obj1 = {}; var obj2 = { name: "张飞" }; var obj3 = new Object(); var obj4 = null; alert($.isPlainObject(obj1));  //true  通过{}创建 alert($.isPlainObject(obj2));  //true  通过{}创建 alert($.isPlainObject(obj3));  //true  通过new Object()创建 alert($.isPlainObject(obj4));  //flase  不是通过{}或new Object()创建 }) $(function () { alert($.contains($("#div1")[0],$("#p1")[0]));  //返回true,注意参数是DOM对象,并非jQuery对象 })

 十、$.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("<br>" + str1);  //Name=张飞&Age=23 })

 十一、$.makeArray()

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

var arr = [1,3,5,7,9]; $(function () { var arr1 = $.makeArray(arr); document.write(arr1.join());  //输出 1,3,5,7,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() + "<br/>"); //1,3,5,7,9,2,4,6,8,10 document.write(arr2.join() + "<br/>"); //2,4,6,8,10 document.write(arr3.join() + "<br/>"); //1,3,5,7,9,2,4,6,8,10 })

 十三、$.parseJSON()

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

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

十四、$.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   })

十五、$.unique(array)

  删除元素数组中的重复元素

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

十六、$.extend()

  合并对象中的元素

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

  省略dest参数,extend方法原型中的dest参数是可以省略的,如果省略了,则该方法就只能有一个src参数,而且是将该src合并到调用extend方法的对象中去。

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwxzxp.html