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;
}

 

转载于:https://www.cnblogs.com/smalldragonluo/p/4272953.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值