JQuery. fn. each And jQuery. each in jQuery source code analysis

Source: Internet
Author: User
This article mainly introduces jQuery source code analysis. fn. each And jQuery. the usage of each is analyzed in detail, which is very useful. If you need it, you can refer to the examples in this article to describe jQuery in jQuery source code analysis. fn. each And jQuery. each usage. Share it with you for your reference. The specific analysis is as follows:

In the previous example, the following code adds a red class to each selected p element.

The Code is as follows:

$ ('P'). each (function (index, elem ){

$ (This). addClass ('red ');
}
});

The above. each, that is, jQuery. fn. each, is implemented through jQuery. each internally.

The Code is as follows:

JQuery. fn. each


First, post the official API description, which is very simple and requires only two points of attention.
In the above example, $ (this). addClass ('red'), where this refers to the dom element of the current operation
Any value can be returned for the method passed in each. When the returned value is false, the current loop operation is skipped.

The Code is as follows:

/**

* @ Description: execute a method for each dom element matched in the jQuery object.

* @ Param {Number} index the position of the current processing element in the Set

* @ Param {DOMElement} the dom Element currently being processed by the Element

*/
.
. Each (function (index, Element ))


The following are two simple examples:

Example 1:

Add a red class to all p elements on the page

The Code is as follows:

$ ('P'). each (function (index, elem ){

$ (This). addClass ('red ');
}
});


Example 2

Add the red class to the first five p elements on the page

The Code is as follows:

$ ('P'). each (function (index, elem ){

If (index> = 5) return false; // jump out of the loop
$ (This). addClass ('red ');
}
});


As above, the usage is quite simple, do not repeat, detailed can view http://api.jquery.com/each/

The source code is implemented through jQuery. each. The following describes the source code of jQuery. each and the source code of jQuery. each. The source code of jQuery. fn. each is simple.

JQuery. each:

Let's take a simple example first.

The Code is as follows:

$. Each ([52, 97], function (index, value ){
Alert (index + ':' + value + ':' + this );
}
});


The output content is as follows:

0: 52-52
1
1: 97-97

Official API description

There are two points of attention.

In the above example, this is an element in the set, that is, the following valueOfElement
Return false in callback to jump out of the loop

The Code is as follows:

/**

* @ Description performs an operation on each element in the Set (array or object ).

* @ Param {Number | String} location of the indexInArray element in the collection (for example, if the set is an array, It is a Number; if the set is an object, it is a key value)

* @ Param {AnyValue} elements in the valueOfElement set

*/
J
JQuery. each (collection, callback (indexInArray, valueOfElement ))



Example 1

The Code is as follows:

$. Each (['one, 'two', 'three ', 'four'], function (index, value ){

If (index> = 2) return false;

Alert ("Index:" + index + ", value:" + value );
}
});


Example 2

Copy the example directly from the official website.

The Code is as follows:

$. Each ({name: "John", lang: "JS"}, function (k, v ){

Alert ("Key:" + k + ", Value:" + v );
}
});


Source code:

The Code is as follows:

// Args is for internal usage only
E
Each: function (obj, callback, args ){

Var value,

I = 0,

Length = obj. length,

IsArray = isArraylike (obj); // If obj is an array-like object, for example, {'0': 'hello', '1': 'World', 'length ': 2}, actually serving jQuery objects

If (args) {// args, but we didn't find the actual function of this parameter ~~ You can simply skip the content in else and check whether the parameters passed by callback are different.
If (isArray ){
For (; I <length; I ++ ){
Value = callback. apply (obj [I], args );
If (value = false ){
Break;
}
}
} Else {
For (I in obj ){
Value = callback. apply (obj [I], args );
If (value = false ){
Break;
}
}
}
// A special, fast, case for the most common use of each
} Else {
If (isArray) {// process the Array
For (; I <length; I ++ ){
Value = callback. call (obj [I], I, obj [I]);
If (value = false ){
Break;
}
}
} Else {// processing object
For (I in obj ){
Value = callback. call (obj [I], I, obj [I]); // value indicates the return value of callback.
If (value = false) {// note that when value = false, the loop jumps out.
Break;
}
}
}
}
Return obj;
}
},




Late jQuery. fn. each source code:

It's really easy. It's okay to understand jQuery. each ~

The Code is as follows:

Each: function (callback, args ){

Return jQuery. each (this, callback, args );
}
},



Conclusion

And jQuery. extend, jQuery. fn. like extend, although jQuery. each, jQuery. fn. the each code is very simple, but it also plays a very important role. jQuery uses a lot of these two methods, for example:

The Code is as follows:

JQuery. each ("Boolean Number String Function Array Date RegExp Object Error". split (""), function (I, name ){

Class2type ["[object" + name + "]"] = name. toLowerCase ();
}
});


Therefore, master each!

I hope this article will help you with jQuery programming.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.