jQuery.access的作用
jQuery.access为attr,prop,css,html等方法提供通用的键值设置/读取方法
// 用于设置和获取集合的值的多用途方法 // 当value/s为function时,可以被选择地执行 access: function( elems, fn, key, value, chainable, emptyGet, pass ) { var exec, bulk = key == null, i = 0, length = elems.length; // 如果key是属性集合,分多次为elements设置所有属性 if ( key && typeof key === "object" ) { for ( i in key ) { jQuery.access( elems, fn, i, key[i], 1, emptyGet, value ); } chainable = 1; //此次调用为非get属性 // 如果是单个属性,且value不为空(此次调用为非get属性) } else if ( value !== undefined ) { //value是否为可执行函数(如果是,则设置value为将element传入function执行后的返回值,否则为固定值) exec = pass === undefined && jQuery.isFunction( value ); //如果未指定key,则具体的key依赖fn if ( bulk ) { // 如果需要设置的value依赖function执行后的返回值,则包装fn,将其上下文变为单个element,在#1处处理 if ( exec ) { exec = fn; fn = function( elem, key, value ) { return exec.call( jQuery( elem ), value ); }; // 否则,fn上下文设为全部elements(jquery对象),在此处处理 } else { fn.call( elems, value ); fn = null; } } // 如果还未处理 #1 if ( fn ) { for (; i < length; i++ ) { fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); } } chainable = 1; //此次调用为非get属性 } return chainable ? elems : // 为get调用,返回get值或指定空值 bulk ? fn.call( elems ) : length ? fn( elems[0], key ) : emptyGet; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。