jQuery - Concept of Traversal in jQuery
1. Concept of Traversal in jQuery
In jQuery, you often start with a set of elements and then traverse to find other elements. For example:
$('div') // selects all divs
.find('p'); // finds all <p> inside those divs
At this point, your current set of elements is now the <p>
elements inside the <div>
. The original <div>
selection is lost if you continue chaining.
2. Reversing Traversal with .end()
The .end()
method goes back to the previous selection set—essentially undoing the last traversal.
Syntax:
.previousTraversal.end()
-
.end()
returns the previous jQuery object from the chain before the last destructive traversal (like.find()
,.children()
,.parent()
).
3. Example
$('div') // Step 1: select all divs
.find('p') // Step 2: select all <p> inside those divs
.css('color', 'red') // Step 3: style <p> elements
.end() // Step 4: go back to original <div> selection
.css('border', '1px solid blue'); // Step 5: style <div> elements
Explanation:
-
$('div')
→ selects all<div>
elements. -
.find('p')
→ changes the current selection to<p>
elements inside those<div>
. -
.css('color', 'red')
→ applies CSS to<p>
elements. -
.end()
→ goes back to the<div>
elements (undoes.find('p')
). -
.css('border', '1px solid blue')
→ applies CSS to<div>
elements.
So .end()
allows you to reverse a traversal and continue chaining on the previous set of elements.
4. Key Points
-
.end()
reverts to the previous set of elements in the chain. -
You can chain multiple
.end()
calls to go back several steps. -
Very useful when you want to operate on both the traversed elements and the original elements without creating new variables.