Skip to content

Commit 5c53958

Browse files
added Difference-between-querySelector-and-querySelectorAll
1 parent 5a72bf5 commit 5c53958

File tree

2 files changed

+120
-1
lines changed

2 files changed

+120
-1
lines changed
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
### **What is the Difference Between `querySelector` and `querySelectorAll`**
2+
3+
In JavaScript, the `querySelector` and `querySelectorAll` methods are used to select elements from the DOM (Document Object Model). While they may seem similar, they have distinct differences in how they work and the type of result they return.
4+
5+
---
6+
7+
## `querySelector`
8+
9+
The `querySelector` method selects the **first element** that matches a specified CSS selector.
10+
11+
### Characteristics of `querySelector`:
12+
13+
1. **Single Element:** Always returns the first matching element.
14+
2. **Null if No Match:** Returns `null` if no element matches the selector.
15+
3. **Flexible Selector Syntax:** Supports CSS selector syntax.
16+
17+
### Syntax:
18+
19+
```javascript
20+
document.querySelector(selector);
21+
```
22+
23+
### Example:
24+
25+
```javascript
26+
// Selects the first <p> element
27+
const firstParagraph = document.querySelector("p");
28+
console.log(firstParagraph.textContent);
29+
30+
// Selects the first element with the class 'highlight'
31+
const firstHighlight = document.querySelector(".highlight");
32+
console.log(firstHighlight.textContent);
33+
```
34+
35+
---
36+
37+
## `querySelectorAll`
38+
39+
The `querySelectorAll` method selects **all elements** that match a specified CSS selector and returns a static NodeList.
40+
41+
### Characteristics of `querySelectorAll`:
42+
43+
1. **Multiple Elements:** Returns all matching elements.
44+
2. **Empty NodeList:** Returns an empty NodeList if no elements match the selector.
45+
3. **Iterable:** The returned NodeList can be iterated using loops or converted to an array.
46+
47+
### Syntax:
48+
49+
```javascript
50+
document.querySelectorAll(selector);
51+
```
52+
53+
### Example:
54+
55+
```javascript
56+
// Selects all <p> elements
57+
const allParagraphs = document.querySelectorAll("p");
58+
allParagraphs.forEach((p) => {
59+
console.log(p.textContent);
60+
});
61+
62+
// Selects all elements with the class 'highlight'
63+
const allHighlights = document.querySelectorAll(".highlight");
64+
console.log(allHighlights.length); // Prints the number of elements
65+
```
66+
67+
---
68+
69+
## Key Differences Between `querySelector` and `querySelectorAll`
70+
71+
| **Aspect** | **querySelector** | **querySelectorAll** |
72+
| ---------------------- | ---------------------------- | -------------------------------------- |
73+
| **Return Type** | Single Element (first match) | Static NodeList of all matches |
74+
| **Number of Results** | One | Zero or more |
75+
| **Return if No Match** | `null` | Empty NodeList |
76+
| **Iteration** | Not directly iterable | Iterable using `forEach` or `for...of` |
77+
78+
---
79+
80+
## Use Cases
81+
82+
### When to Use `querySelector`:
83+
84+
- Selecting a single, specific element from the DOM.
85+
- When you are sure only one element needs to be targeted (e.g., an ID selector).
86+
87+
### When to Use `querySelectorAll`:
88+
89+
- Selecting multiple elements that share a common CSS selector.
90+
- Applying the same logic or styling to multiple elements.
91+
92+
---
93+
94+
## Example Comparing Both
95+
96+
```javascript
97+
// HTML Example:
98+
// <p class="highlight">First</p>
99+
// <p class="highlight">Second</p>
100+
101+
// Using querySelector
102+
const firstHighlight = document.querySelector(".highlight");
103+
console.log(firstHighlight.textContent); // Output: "First"
104+
105+
// Using querySelectorAll
106+
const allHighlights = document.querySelectorAll(".highlight");
107+
allHighlights.forEach((el) => console.log(el.textContent));
108+
// Output:
109+
// "First"
110+
// "Second"
111+
```
112+
113+
---
114+
115+
## Summary
116+
117+
- **`querySelector`** is for selecting a single element (the first match).
118+
- **`querySelectorAll`** is for selecting multiple elements (all matches).
119+
- Both use CSS selectors for targeting elements, making them powerful and flexible tools for DOM manipulation.

Medium/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This section contains intermediate-level JavaScript interview questions. Click o
1010
6. [What are higher-order functions in JavaScript?](Higher-order-functions-in-JS.md)
1111
7. [What is a callback function in JavaScript?](Callback-functions-in-JS.md)
1212
8. [What is the difference between synchronous and asynchronous programming?](Difference-between-sync-and-async.md)
13-
9. [What is the difference between querySelector and querySelectorAll?](Difference-between-querySelector-and-querySelectorAll.md)
13+
9. [What is the difference between querySelector and querySelectorAll?](Difference-between-querySelector-and-querySelectorAll.md)
1414
10. [What is hoisting in JavaScript?](Hoisting-in-JS.md)
1515
11. [What are JavaScript promises, and how do they work?](Promises-in-JS.md)
1616
12. [What is the difference between function declaration and function expression?](Function-declaration-vs-expression.md)

0 commit comments

Comments
 (0)