2025. 9. 8. 20:34γFront-end/JavaScript

λͺ©μ°¨
1. μμμ κ²μ
2. document.getElementById
3. querySelectorAll, querySelector
5. matches();
6. closest
1. μμμ κ²μ
μμλ€μ΄ κ°κΉμ΄ λΆμ΄μμ§ μλ€λ©΄, μλ μμΉλ‘ μμ λ Έλμ μ κ·Όν μ μλ€.
μ΄λ΄ κ²½μ°, idλ₯Ό κ²μν΄μ μνλ μμμ μ κ·Όν μ μλ€.
2. idλ‘ κ²μν΄μ μμ λ€λ£¨κΈ°
μμμ id μμ±μ΄ μμΌλ©΄ document.getElementById(id)λ₯Ό μ¬μ©ν΄ μ κ·Όν μ μλ€.
<div id="element">
<div id="content">blah blah</div>
</div>
<script>
let element = document.getElementById('element'); // idλ‘ μμ κ²μν΄μ μ»μ
element.style.background = 'red'; // μμμ λ°°κ²½μ λ³κ²½
</script>
3. querySelectorAll, querySelector
1. querySelectorAll
[element].querySelectorAll(css)λ μμ μμ μ€ μ£Όμ΄μ§ css μ νμμ λμνλ μμλ₯Ό λͺ¨λ λ°ννλ€.
<ul>
<li>1-1</li>
<li>1-2</li>
</ul>
<ul>
<li>2-1</li>
<li>2-2</li>
</ul>
<script>
let elements = document.querySelectorAll('ul > li:last-child');
for (let elem of elements) {
alert(elem.innerHTML); // "1-2", "2-2"
}
</script>
μμ μ½λλ λ§μ§λ§ <li> μμλ₯Ό λͺ¨λ λ°ννκ³ μλ€.
μ΄ λ μ¬μ©νλ cssλ‘λ κ°μ ν΄λμ€λ μ¬μ©ν μ μλ€.
→ document.querySelectorAll(':hover') μμ± μ, hover μνμΈ μμλ₯Ό λͺ¨λ λ΄μ 컬λ μ μ λ°ν
2. querySelector
[element].querySelector(css)λ μ£Όμ΄μ§ css μ νμμ λμνλ μμ μ€ μ²« λ²μ§Έ μμλ₯Ό λ°ννλ€.
= [element].querySelectorAll(css) [0] μΈ μ μ΄λ€.
querySelectorAllμ λͺ¨λ μμλ₯Ό κ²μνλ, querySelectorλ ν΄λΉ μμλ₯Ό μ°ΎμΌλ©΄ κ²μμ λ©μΆλ€λ μ°¨μ΄κ° μλ€.
4. matches
[element].matches(css)λ [element]κ° μ£Όμ΄μ§ CSSμ μΌμΉνλμ§ μ¬λΆλ₯Ό νλ¨νλ€.(true/false)
μμ λ°°μ΄μ μννμ¬ μνλ μμλ§ κ±Έλ¬λΌ λ μ μ©νλ€.
<a href="https://example.com/file.zip">...</a>
<a href="htps://something.com">...</a>
<script>
// document.body.childrenμ΄ μλμ΄λ 컬λ μ
μ΄λΌλ©΄ μ΄ λ©μλ μ μ© κ°λ₯
for(let elem of document.body.children) {
if (elem.matches('(a[href$="zip"]')) {
alcert("μ£Όμ΄μ§ CSS μ νμμ μΌμΉνλ μμ: " + elem.href );
}
}
</script>
5. closest
λΆλͺ¨/μ‘°μ μμ λ± DOM νΈλ¦¬μμ νΉμ μμμ μμμ μλ μμλ€μ μ‘°μ μμλΌκ³ νλ€.
[element].closest(css)λ [element] μκΈ° μμ μ ν¬ν¨νμ¬ CSS μ νμμ μΌμΉνλ κ°μ₯ κ°κΉμ΄ μ‘°μ μμλ₯Ό μ°Ύλλ€.
closest λ©μλλ ν΄λΉ μμλΆν° DOM νΈλ¦¬λ₯Ό ν λ¨κ³μ© κ±°μ¬λ¬ μ¬λΌκ°λ©΄ μνλ μμλ₯Ό μ°ΎμΌλ©°,
CSS μ νμμ μΌμΉνλ μμλ₯Ό μ°ΎμΌλ©΄ κ²μμ μ€λ¨νκ³ μ°ΎμλΈ μμλ₯Ό λ°ννλ€.
<h1>lits</h1>
<div class="contents">
<ul class="book">
<li class="chapter">page 1 </li>
<li class="chapter">page 2 </li>
</ul>
</div>
<script>
let chapter = document.querySelector('.chapter'); // LI
alert(chapter.closest('.book')); // UL
alert(chapter.closest('.contents')); // DIV
alert(chapter.closest('h1')); // null (h1μ liμ μ‘°μμ΄ μλ)
</script>
6. getElementsBy*
μμ΄λκ° μλ νκ·Έλ ν΄λμ€ λ±μ μ΄μ©ν΄ μνλ λ Έλλ₯Ό μ°Ύλ λ©μλμ΄λ€.
querySelectorλ₯Ό μ΄μ©νλ κ² λ νΈλ¦¬νκ³ λ¬Έλ²λ μ§§μμ μμ¦μ μ μμ°μΈλ€.
- getElementsByName : name κ²μ
- getElementsByTagName : νκ·Έλ * κ²μ
- getElementsByClassName : classλ‘ κ²μ
- ...
μ€λλ μ€ν¬λ¦½νΈλ μΌλΆ κΌ νμν μν©μμ μ°μΌ μ μλ€.
μ°Έκ³
'Front-end > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| λ©μλλ‘ DOM μ‘°μν΄μ λ¬Έμ μμ νκΈ° (0) | 2025.09.22 |
|---|---|
| DOM λ Έλμ λμνλ ν΄λμ€ (0) | 2025.09.22 |
| E1 : JSλ‘ DOM κ°μ²΄ νμνκΈ° (0) | 2025.09.07 |
| B23 : iterable κ°μ²΄ (1) | 2025.08.29 |
| μ΅μ λ 체μ΄λ ?. (1) | 2025.08.29 |
GitHub