Cyh的博客

Email:kissyan4916@163.com
posts - 26, comments - 19, trackbacks - 0, articles - 220

(转)jQuery入门(8):工具

Posted on 2010-01-25 00:04 啥都写点 阅读(295) 评论(0)  编辑  收藏 所属分类: JavaScript

工具

注:jQuery都可替换为$

浏览器
jQuery.browser()
:浏览器内核标识。依据 navigator.userAgent 判断。

可用值: safari opera msie mozilla

在 Microsoft's Internet Explorer 浏览器中返回 true。

代码:$.browser.msie

仅在 Safari 中提示 "this is safari!" 。

代码:

if ($.browser.safari) {

   alert("this is safari!");

}

 

jQuery.browser.version():浏览器渲染引擎版本号

典型结果:

Internet Explorer: 6.0, 7.0

Mozilla/Firefox/Flock/Camino: 1.7.12, 1.8.1.3

Opera: 9.20

Safari/Webkit: 312.8, 418.9

 

if ( $.browser.msie )

 alert( $.browser.version );

 

jQuery.boxModel():当前页面中浏览器是否使用标准盒模型渲染页面

在 Internet Explorer 怪癖模式(QuirksMode)中返回 False。

代码:$.boxModel

 

数组和对象操作
jQuery.each(obj,callback)
:通用例遍方法,可用于例遍对象和数组。

代码:例遍数组,同时使用元素索引和内容。

$.each( [0,1,2], function(i, n){

 alert( "Item #" + i + ": " + n );

});

 

代码:例遍对象,同时使用成员名称和变量内容。

$.each( { name: "John", lang: "JS" }, function(i, n){

 alert( "Name: " + i + ", Value: " + n );

});

 

jQuery.extend(target,obj1,objN)用一个或多个其他对象来扩展一个对象返回被扩展的对象

代码:合并 settings options修改并返回 settings

var settings = { validate: false, limit: 5, name: "foo" };

var options = { validate: true, name: "bar" };

jQuery.extend(settings, options);

结果:settings == { validate: true, limit: 5, name: "bar" }

 

代码:合并 defaults options, 不修改 defaults

var empty = {}

var defaults = { validate: false, limit: 5, name: "foo" };

var options = { validate: true, name: "bar" };

var settings = jQuery.extend(empty, defaults, options);

结果:

settings == { validate: true, limit: 5, name: "bar" }

empty == { validate: true, limit: 5, name: "bar" }

 

jQuery.grep(array,callback,invert)使用过滤函数过滤数组元素

代码:过滤数组中小于 0 的元素。

$.grep( [0,1,2], function(n,i){

 return n > 0;

});

结果:[1, 2]

 

代码:排除数组中大于 0 的元素,使用第三个参数进行排除。

$.grep( [0,1,2], function(n,i){

 return n > 0;

}, true);

结果:[0]

 

jQuery.makeArray(obj):将类数组对象转换为数组对象

<div>First</div><div>Second</div><div>Third</div><div>Fourth</div>

代码:过滤数组中小于 0 的元素。

var arr = jQuery.makeArray(document.getElementsByTagName("div"));

arr.reverse(); // 使用数组翻转函数

结果:

Fourth

Third

Second

First

 

jQuery.map(array,callback)将一个数组中的元素转换到另一个数组中

代码:将原数组中每个元素加 4 转换为一个新数组。

$.map( [0,1,2], function(n){

 return n + 4;

});

结果:[4, 5, 6]

 

代码:原数组中大于 0 的元素加 1 ,否则删除。

$.map( [0,1,2], function(n){

 return n > 0 ? n + 1 : null;

});

结果:[2, 3]

 

代码:原数组中每个元素扩展为一个包含其本身和其值加 1 的数组,并转换为一个新数组。

$.map( [0,1,2], function(n){

 return [ n, n + 1 ];

});

结果:[0, 1, 1, 2, 2, 3]

 

jQuery.unique(array)删除数组中重复元素

代码:删除重复 div 标签。

$.unique(document.getElementsByTagName("div"));

结果:<div>, <div>, ...

 

测试操作
jQuery.isFunction(obj)
:测试对象是否为函数

代码:检测是否为函数

    function stub() {}

     var objs = [

            function () {},

            { x:15, y:20 },

            null,

            stub,

            "function"

          ];

        jQuery.each(objs, function (i) {

        var isFunc = jQuery.isFunction(objs[i]);

        $("span:eq( " + i + ")").text(isFunc);

      }); 

结果: true,false,false,true,false 

 

字符串操作
jQuery.trim(str)
去掉字符串起始和结尾的空格

$.trim(" hello, how are you? "); 结果:"hello, how are you?"



                                                                                                       --    学海无涯