jQuery - jQuery Descendants
jQuery Descendants
In jQuery, descendants are elements that are nested inside a selected element.
jQuery provides several methods to traverse the DOM and find descendant elements, such as .children()
, .find()
, and descendant selectors.
1) What Are Descendants in jQuery?
-
A descendant is any element inside another element, at any depth.
-
In jQuery, we can find and manipulate descendant elements using:
-
Descendant selectors
-
.children()
method -
.find()
method
-
2) Using Descendant Selectors
A descendant selector in jQuery (and CSS) is used to select all elements inside another element, regardless of how deeply they are nested.
Syntax
$("parent descendant");
-
parent → The element you want to start from.
-
descendant → The elements inside the parent.
Example
$("div p").css("color", "blue");
-
Selects all
<p>
elements inside any<div>
.
3) Using .children()
Method
The .children()
method finds direct children (one level down) of the selected element.
Syntax
$(selector).children(filter);
Parameters
Parameter | Description | Optional |
---|---|---|
filter | A selector to filter child elements | Yes |
Example 1: Get All Children
$("#container").children().css("border", "1px solid red");
-
Selects only immediate children of
#container
.
Example 2: Get Specific Children
$("#container").children("p").css("color", "green");
-
Selects only
<p>
children inside#container
.
4) Using .find()
Method
The .find()
method searches all descendant elements, at any depth.
Syntax
$(selector).find(filter);
Parameters
Parameter | Description |
---|---|
filter | A selector to match descendants |
Example 1: Find All Descendants
$("#main").find("*").css("background", "yellow");
-
Selects all descendants inside
#main
.
Example 2: Find Specific Descendants
$("#main").find("span").css("color", "blue");
-
Selects all
<span>
tags inside#main
, no matter how deeply nested.
5) Difference Between .children()
and .find()
Aspect | .children() |
.find() |
---|---|---|
Scope | Only direct children | All descendants at any level |
Selector | Optional | Required for targeting specific elements |
Performance | Faster | Slightly slower for large trees |
Use Case | When you only need immediate children | When you need deep traversal |
Example Comparison
// Finds only direct <li> children of <ul>
$("ul").children("li").css("color", "green");
// Finds <li> at all levels inside <ul>
$("ul").find("li").css("color", "blue");
6) Combining .children()
and .find()
You can combine both methods to target specific nested elements:
$("#container")
.children("div") // Get direct <div> children
.find("p") // Find <p> inside those <div>s
.css("color", "purple");
7) Practical Example
HTML
<div id="box">
<div class="inner">
<p>First paragraph</p>
<span>Inside span</span>
</div>
<p>Outer paragraph</p>
</div>
jQuery
// Direct children of #box
$("#box").children().css("border", "2px solid red");
// Find all descendants of #box
$("#box").find("p").css("color", "blue");
8) Summary
-
Descendants = Elements nested inside another element.
-
Use descendant selectors for simple targeting.
-
Use
.children()
→ To get direct children. -
Use
.find()
→ To get all descendants, no matter how deep. -
Combine both for precise control.