一、$.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);
})

二、boxModel

  返回一个布尔值,如果是W3C盒子模型则返回true,否则返回false。

  盒子模型分两类,一类是W3C盒子模型,一类是IE盒子模型。两者的根本区别在于W3C的盒子模型不包括padding与border,仅指content的Height和Width,而IE盒子模型  包含padding与border。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="jQuery.1.8.3.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
if ($.support.boxModel) {
alert("W3C盒子模型!");
}
else {
alert("IE盒子模型!");
}
})
</script>
</head>
<body> </body>
</html>

  上面的例子弹出W3C盒子模型,如果删除掉顶部的两行,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">。则弹出的是IE盒子模型。

数组和对象的操作

三、$.each()

  此工具函数不仅能够完成指定数组的遍历,还能够实现页面中元素的遍历。

  语法:$.each(obj,fn(para1,para2))  obj要遍历的数组或对象,fn为每个遍历元素执行的回调函数,para1表示数组的序号或对象的属性,para2表示数组的元素和对象的属性。

        $(function () {
var arr = [1, 2, 3, 4, 5];
$.each(arr, function (index, value) {
document.write(index + ":");
document.write(value + "<br/>");
});
})
    输出:
      0:1
      1:2
      2:3
      3:4
      4:5

  $.each()遍历数组。

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

  元素遍历

<head>
<title></title>
<script src="jQuery.1.8.3.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("p").each(function () {
$(this).css("background-color", "red");
});        //一下三行代码与以上三行效果一样
//$.each($("p"), function () {
// $(this).css("background-color", "red");
//})
})
</script>
</head>
<body>
<p>我是第一个P</p>
<p>我是第二个P</p>
<p>我是第三个P</p>
<p>我是第四个P</p>
<p>我是第五个P</p>
</body>
</html>

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

六、$.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() + "<br/>");  //2,5,34,22,8  可以看到原数组不改变
document.write(arr1.join());        //24  新数组只获得了操作之后的结果
})

七、$.inArray()

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

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

八、$.trim()

  去除字符串两边的空格

        $(function () {
var str = " 你在他乡还好吗? ";
document.write("11" + str + "11" + "<br/>");  //输出 11 你在他乡还好吗? 11
document.write("11" + $.trim(str) + "11");   //输出 11你在他乡还好吗?11    //加个11是为了看清楚差别。
})

九、测试操作

    $.isArray(obj)    检测参数是否是数组

    $.isFunction(obj)   检测参数是否是一个函数

    $.isEmptyObject(obj)  检测参数是否是一个空对象

    $.isPlainObject(obj)   检测参数是否是一个纯粹对象,即对象是否通过{}或new Object()关键字创建。

    $.contains(container,contained)  检测一个DOM节点是否包含另一个DOM节点。是则返回true否则表示false。注意参数是DOM对象并非jQuery对象。

        $(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方法的对象中去。

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

$(function(){
$.extend({
hello:function(){alert('hello');}  //该方法只有一个参数,意味着将hello方法合并到jQuery全局对象中去
});
$.hello(); //弹出 hello
})

  命名空间示例:

$(function(){
$.extend({net:{}}); //扩展一个命名空间
$.extend($.net,{
hello:function(){alert('hello');} //将hello方法绑定到命名空间net里去
})
$.net.hello(); //通过net命名空间调用方法
})

  拷贝方法原型:

extend(boolean,dest,src1,src2,src3...)

  其中第一个参数boolean表示是否进行深层拷贝。

$(function(){
var result=$.extend( true, {},
{ name: "John", location: {city: "Boston",country:"USA"} },
{ last: "Resig", location: {state: "MA",country:"China"} } );
alert(result.location.state); //输出 MA //result={name:"John",last:"Resig", location:{city:"Boston",state:"MA",county:"China"}} var result=$.extend( false, {},
{ name: "John", location: {city: "Boston",country:"USA"} },
{ last: "Resig", location: {state: "MA",country:"China"} } );
alert(result.location.city); //输出 undefined //result={name:"John",last:"Resig",location:{state:"MA",county:"China"}} 注意没有city,只是合并了location,location里面的属性不管
})

source:http://www.cnblogs.com/kissdodog/archive/2012/12/27/2835561.html

jQuery 工具函数的更多相关文章

  1. 从零开始学习jQuery (九) jQuery工具函数

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 我们经常要使用脚本处理各种业务逻辑, 最常见的就 ...

  2. jQuery工具函数(转)

    原文地址:http://www.cnblogs.com/kissdodog/archive/2012/12/27/2835561.html 作者:逆心 ------------------------ ...

  3. jQuery工具函数

    要点:1.字符串操作2.数组和对象操作3.测试操作4.URL 操作5.浏览器检测6.其他操作 工具函数是指直接依附于 jQuery 对象,针对 jQuery 对象本身定义的方法,即全局性的函数.它的作 ...

  4. 4月13日学习笔记——jQuery工具函数

    浏览器及特性检测 jQuery.support.boxModel 如果这个页面和浏览器是以 W3C CSS 盒式模型来渲染的,则等于 true.通常在 IE 6 和 IE 7 的怪癖模式中这个值是 f ...

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

    1.$.browser对象属性 属性列表 说明  webkit webkit相关浏览器则返回true,否则返回false,如google,傲游.  mozilla mozilla相关浏览器则返回tru ...

  6. jquery工具函数browser() 辨别浏览器

    1.browser属性不是一个函数是一个全局对象,可以辨别客户端浏览器. 2.属性1:$.browser.msie如果返回true则客户端浏览器是ie.相似的$.browser.safari返回tru ...

  7. jQuery工具函数下

    测试操作 1.判断是否为数组对象 $(function () { //判断是否为数组对象 var arr = [1,2,3,4]; alert($.isArray(arr));//true }); 2 ...

  8. jQuery工具函数上

    1.字符串操作 <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...

  9. JQuery中的工具函数总结

    前提引入 前提当然也是要引入Jquery啦... <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" typ ...

随机推荐

  1. nginx反向代理+负载均衡+https

    A服务器(192.168.133.1)作为nginx代理服务器 B服务器(192.168.133.2)作为后端真实服务器 访问https://www.test.com请求从A服务器上反向代理到B服务器 ...

  2. 【Luogu】P1896互不侵犯King(状压DP)

    题目链接 真是可恶,被数据范围坑了一把.想要一遍AC的希望破灭了…… 以后大家在做状压DP的时候一定要开long long…… 设f[i][j][k]表示考虑前i行,总共放了j个King,第i行状态为 ...

  3. Codeforces 333E Summer Earnings ——Bitset

    [题目分析] 找一个边长最大的三元环. 把边排序,然后依次加入.加入(i,j)时,把i和j取一个交集,看看是否存在,存在就找到了最大的三元环. 输出即可,n^3/64水过. [代码] #include ...

  4. BZOJ 1197: [HNOI2006]花仙子的魔法【DP】

    Description 相传,在天地初成的远古时代,世界上只有一种叫做“元”的花.接下来,出 现了一位拥有魔法的花仙子,她能给花附加属性,从此,“元”便不断变异,产生了大千世界千奇百怪的各种各样的花. ...

  5. POJ 1006 生理周期【数论】

    这题是有中文版的(右上角选项卡里把default改成简体中文)然后看到他把biorhythms翻成生理周期我可耻的笑了......23333 如果没有限定从日期d开始,完全可以从第一天起开始计时,因此 ...

  6. P1410 子序列 (动态规划)

    题目描述 给定一个长度为N(N为偶数)的序列,问能否将其划分为两个长度为N/2的严格递增子序列. 输入输出格式 输入格式: 若干行,每行表示一组数据.对于每组数据,首先输入一个整数N,表示序列的长度. ...

  7. 表单禁用复制、粘贴、及右击菜单(contextmenu、oncopy、oncut、onpaste、onselectstart)

    禁用右键菜单,可以使用oncontextmenu属性: <textarea oncontextmenu="return false"></textarea> ...

  8. 准备 KVM 实验环境

    KVM 是 OpenStack 使用最广泛的 Hypervisor,本节介绍如何搭建 KVM 实验环境 安装 KVM 上一节说了,KVM 是 2 型虚拟化,是运行在操作系统之上的,所以我们先要装一个 ...

  9. dedecms--需要注意的细节

    在系统的系统配置参数里面修改一些参数 1:站点设置: (1):站点根网址:本地测试的话:就是你设置的虚拟主机:http://www.abc.cc (2):网页主页链接:为空 2:核心设置: DedeC ...

  10. T2832 6个朋友 codevs

    http://codevs.cn/problem/2832/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 有这么一种说法: ...