当然,上面示例所定义的each()工具函数比较简单,适应能力比较有限。在jQuery框架中,它封装的each()函数功能就强大很多,具体代码如下所示。
广州网站建设,网站建设,广州网页设计,广州网站设计
- jQuery.extend({
- //参数说明:object表示jQuery对象,callback表示回调函数,args回调函数的参数数组
- each: function( object, callback, args ) {
- var name, i = 0, length = object.length;
- if ( args ) { //如果存在回调函数的参数数组
- if ( length === undefined ) { //如果object不是jQuery对象
- for ( name in object ) //遍历object的属性
- if ( callback.apply( object[ name ], args ) === false )
- //在对象上调用回调函数
- break; //如果回调函数返回值为false,则跳出循环
- } else //如果object是jQuery对象
- for ( ; i < length; ) //遍历jQuery对象数组
- if ( callback.apply( object[ i++ ], args ) === false )
- //在对象上调用回调函数
- break; //如果回调函数返回值为false,则跳出循环
- } else {
- if ( length === undefined ) { //如果object不是jQuery对象
- for ( name in object ) //遍历object的属性
- if ( callback.call( object[ name ], name, object[ name ] ) === false )
- break; //如果回调函数返回值为false,则跳出循环
- } else //如果object是jQuery对象
- for ( var value = object[0]; //遍历jQuery对象数组
- i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
- }
- return object; //返回jQuery对象
- }
- })
同时,jQuery框架定义的html()方法如下所示。由于该方法包含的功能比较多,它不仅可以插入HTML源代码,还可以返回匹配元素包含的HTML源代码,故它使用了一个条件结构分别进行处理。首先,判断参数是否为空,如果为空,则表示获取匹配元素中第一个元素包含的HTML源代码,此时返回该innerHTML的值。如果不为空,则先清空匹配元素中每个元素包含的内容,并使用append()方法插入HTML源代码。
广州网站建设,网站建设,广州网页设计,广州网站设计
- jQueryjQuery.fn = jQuery.prototype = {
- html: function( value ) {
- return value === undefined ?
- (this[0] ?
- this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") :
- null) :
- this.empty().append( value );
- }
- }



