annotate default/node_modules/jquery/src/core/access.js @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 define( [
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 "../core",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 "../core/toType",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 "../var/isFunction"
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 ], function( jQuery, toType, isFunction ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 "use strict";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 // Multifunctional method to get and set values of a collection
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10 // The value/s can optionally be executed if it's a function
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 var i = 0,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 len = elems.length,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 bulk = key == null;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 // Sets many values
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 if ( toType( key ) === "object" ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 chainable = true;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 for ( i in key ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 access( elems, fn, i, key[ i ], true, emptyGet, raw );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 // Sets one value
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 } else if ( value !== undefined ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 chainable = true;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 if ( !isFunction( value ) ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 raw = true;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31 if ( bulk ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 // Bulk operations run against the entire set
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 if ( raw ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 fn.call( elems, value );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 fn = null;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38 // ...except when executing function values
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 } else {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40 bulk = fn;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 fn = function( elem, key, value ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 return bulk.call( jQuery( elem ), value );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 };
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 if ( fn ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48 for ( ; i < len; i++ ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 fn(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 elems[ i ], key, raw ?
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 value :
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 value.call( elems[ i ], i, fn( elems[ i ], key ) )
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 if ( chainable ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59 return elems;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
61
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
62 // Gets
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
63 if ( bulk ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
64 return fn.call( elems );
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
65 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
66
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
67 return len ? fn( elems[ 0 ], key ) : emptyGet;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
68 };
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
69
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
70 return access;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
71
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
72 } );