jQuery allows us to move in and out the selector chaining by using the get()
method. This method has the ability to turn a jQuery object into a normal DOM object. By using this method we're actually moving out the selector chaining. To move back in the selector chaining, we need to use the jQuery wrapper shortcut $()
. Let's make an example. Suppose that we have a basic unordered list like this:
<ul id="test"> <li>A</li> <li>B</li> <li>C</li> </ul>
We want to iterate over each list item using a traditional for
loop. First, we need to turn all the items into simple DOM objects:
var li = $('#test li').get();
Now li
is a normal DOM NodeList. We can use our loop as follows:
var i, len = li.length; for(i = 0; i < len; i += 1) { // do something with each item }
Since we're currently outside the jQuery selector chaining, we'd like to move back to it. We can accomplish this task using $()
:
for(i = 0; i < len; i += 1) { var $li = $(li[i]); // code continues }
Now we're again within the selector chaining and we can use a normal jQuery method on each item:
// code continues $li.animate({ fontSize: '1.5em' }, 2000, function() { $(this).animate({ fontSize: '1em' }, 2000); });
You can see a test below.