0 Comments

延续--迭代器(2)

发布于:2013-05-30  |   作者:广州网站建设  |   已聚集:人围观
延续--迭代器(2)

当然,上面示例所定义的each()工具函数比较简单,适应能力比较有限。在jQuery框架中,它封装的each()函数功能就强大很多,具体代码如下所示。

广州网站建设,网站建设,广州网页设计,广州网站设计
  1. jQuery.extend({  
  2.     //参数说明:object表示jQuery对象,callback表示回调函数,args回调函数的参数数组  
  3.     each: function( object, callback, args ) {  
  4.         var name, i = 0length = object.length;  
  5.         if ( args ) {    //如果存在回调函数的参数数组  
  6.             if ( length === undefined ) {    //如果object不是jQuery对象  
  7.                 for ( name in object )    //遍历object的属性  
  8.                     if ( callback.apply(  object[ name ], args ) === false )  
  9.                                 //在对象上调用回调函数  
  10.                         break;          //如果回调函数返回值为false,则跳出循环  
  11.             } else                  //如果object是jQuery对象  
  12.                 for ( ; i < length; )   //遍历jQuery对象数组  
  13.                     if ( callback.apply(  object[ i++ ], args ) === false )  
  14.                                 //在对象上调用回调函数  
  15.                         break;          //如果回调函数返回值为false,则跳出循环  
  16.         } else {  
  17.             if ( length === undefined ) {    //如果object不是jQuery对象  
  18.                 for ( name in object )   //遍历object的属性  
  19.                     if ( callback.call(  object[ name ], name, object[ name ] ) === false )  
  20.                         break;          //如果回调函数返回值为false,则跳出循环  
  21.             } else                  //如果object是jQuery对象  
  22.                 for ( var value = object[0];     //遍历jQuery对象数组  
  23.                     i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}  
  24.         }  
  25.         return object;              //返回jQuery对象  
  26.     }  
  27. }) 

同时,jQuery框架定义的html()方法如下所示。由于该方法包含的功能比较多,它不仅可以插入HTML源代码,还可以返回匹配元素包含的HTML源代码,故它使用了一个条件结构分别进行处理。首先,判断参数是否为空,如果为空,则表示获取匹配元素中第一个元素包含的HTML源代码,此时返回该innerHTML的值。如果不为空,则先清空匹配元素中每个元素包含的内容,并使用append()方法插入HTML源代码。

广州网站建设,网站建设,广州网页设计,广州网站设计
  1. jQueryjQuery.fn = jQuery.prototype = {  
  2.     html: function( value ) {  
  3.         return value === undefined ?  
  4.             (this[0] ?  
  5.                 this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") :  
  6.                 null) :  
  7.             this.empty().append( value );  
  8.     }  
标签:
飞机