- 1.首先判断key值是不是一个object,如果是,遍历key,递归调用jQuery.access,并将是否可以链式调用的标志位设置为true
- 2.判断value值是否已经定义,如果已经定义,说明是个set操作
- 2.1 set操作的是可链式调用的
- 2.2 如果value不是function,设置raw为true
- 2.3 判断key值是否为null或者undefined,key若为空值
- 2.3.1 如果value不是个函数,或者强制赋值raw为true,那么调用fn,可能是以下调用:$('#box').attr(null,{abc:'def',a:'1'})
- 2.3.1 如果value是个函数,将fn包装之,改变原来fn的作用域和参数
- 2.4 如果fn存在,遍历jQuery内部元素,分别执行set操作
- 3.首先判断是否为set方法,如果是,返回 elems,如果不是执行get操作(如果jQuery内部length为0,返回指定的默认空值)