jQuery provides a comprehensive set of traversing methods to navigate through the DOM, allowing you to easily select and manipulate elements in relation to others.
1. Traversing the DOM Hierarchy
Method |
Description |
Syntax |
Example |
parent() |
Selects the immediate parent of an element. |
$(selector).parent() |
$("#child").parent(); |
parents() |
Selects all ancestors (parents) of an element. |
$(selector).parents() |
$("#child").parents(); |
parentsUntil() |
Selects ancestors of an element until a specific ancestor. |
$(selector).parentsUntil(selector) |
$("#child").parentsUntil("#stopHere"); |
children() |
Selects all direct child elements. |
$(selector).children([filter]) |
$("#parent").children(); |
siblings() |
Selects all siblings of an element. |
$(selector).siblings([filter]) |
$("#element").siblings(); |
next() |
Selects the next sibling element. |
$(selector).next([filter]) |
$("#element").next(); |
nextAll() |
Selects all following siblings of an element. |
$(selector).nextAll() |
$("#element").nextAll(); |
nextUntil() |
Selects all following siblings until a specific element. |
$(selector).nextUntil(selector) |
$("#start").nextUntil("#end"); |
prev() |
Selects the previous sibling element. |
$(selector).prev([filter]) |
$("#element").prev(); |
prevAll() |
Selects all preceding siblings of an element. |
$(selector).prevAll() |
$("#element").prevAll(); |
prevUntil() |
Selects all preceding siblings until a specific element. |
$(selector).prevUntil(selector) |
$("#end").prevUntil("#start"); |
closest() |
Selects the first ancestor that matches the selector. |
$(selector).closest(selector) |
$("#element").closest(".container"); |
2. Filtering Elements
Method |
Description |
Syntax |
Example |
filter() |
Filters the matched elements based on a selector. |
$(selector).filter(filter) |
$("p").filter(".highlight"); |
not() |
Removes elements that match the specified selector. |
$(selector).not(selector) |
$("li").not(".exclude"); |
is() |
Checks if any element matches the selector. |
$(selector).is(selector) |
if ($("#element").is(":visible")) { alert("Visible!"); } |
has() |
Filters elements that contain a specified child. |
$(selector).has(selector) |
$("div").has("p"); |
3. Finding Elements
Method |
Description |
Syntax |
Example |
find() |
Finds descendants of the selected element. |
$(selector).find(selector) |
$("#parent").find(".child"); |
eq() |
Selects an element at a specific index. |
$(selector).eq(index) |
$("li").eq(2); |
first() |
Selects the first matched element. |
$(selector).first() |
$("li").first(); |
last() |
Selects the last matched element. |
$(selector).last() |
$("li").last(); |
slice() |
Reduces the matched elements to a subset. |
$(selector).slice(start, end) |
$("li").slice(1, 3); |
4. Miscellaneous Traversing Methods
Method |
Description |
Syntax |
Example |
add() |
Adds elements to the matched set. |
$(selector).add(selector2) |
$("p").add("div"); |
contents() |
Gets all children, including text and comment nodes. |
$(selector).contents() |
$("#iframe").contents(); |
end() |
Ends the most recent filtering operation. |
$(selector).end() |
$("li").filter(".highlight").end(); |
each() |
Iterates over each element in the matched set. |
$(selector).each(callback) |
$("*").each(function() { console.log($(this).text()); }); |
toArray() |
Converts the matched elements into an array. |
$(selector).toArray() |
let elements = $("li").toArray(); console.log(elements); |
map() |
Maps each matched element to a value. |
$(selector).map(callback) |
$("li").map(function() { return $(this).text(); }); |
Example: Traversing with jQuery
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery Traversing</title>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<style>
.highlight {
background-color: yellow;
}
</style>
<script>
$(document).ready(function() {
// Parent and Children Traversing
$("#getParent").click(function() {
$("#child").parent().addClass("highlight");
});
$("#getChildren").click(function() {
$("#parent").children().addClass("highlight");
});
// Siblings Traversing
$("#getSiblings").click(function() {
$("#child").siblings().addClass("highlight");
});
// Filtering
$("#filterItems").click(function() {
$("li").filter(".special").addClass("highlight");
});
// Find Descendants
$("#findItems").click(function() {
$("#parent").find("span").addClass("highlight");
});
});
</script>
</head>
<body>
<div id="parent">
<h3>Parent Element</h3>
<div id="child">Child Element</div>
<div>Sibling 1</div>
<div>Sibling 2</div>
<ul>
<li>Item 1</li>
<li class="special">Special Item</li>
<li>Item 3</li>
</ul>
<span>Descendant 1</span>
<span>Descendant 2</span>
</div>
<button id="getParent">Highlight Parent</button>
<button id="getChildren">Highlight Children</button>
<button id="getSiblings">Highlight Siblings</button>
<button id="filterItems">Highlight Filtered Items</button>
<button id="findItems">Highlight Descendants</button>
</body>
</html>
Try It Now
Key Points
- DOM Traversal: Helps navigate through parent, child, sibling, and ancestor elements.
- Filtering: Refines matched elements using various filters and conditions.
- Combining Methods: You can chain traversing methods for precise selections.