2025. 9. 22. 23:39γFront-end/JavaScript

λͺ©μ°¨
1. λ©μλλ‘ λ¬Έμ μμ νκΈ°
1-1. μμ(Element), λ Έλ(Node) μμ±
1-2. μμ μ½μ
1-3. HTML λ¬Έμμ΄ μ½μ
1-4. μμ
1-5. 볡μ
1-6. DocumentFragment μ¬μ©
2. μ€νμΌ μ μ©νκΈ°
1. λ©μλλ‘ λ¬Έμ μμ νκΈ°
λ©μλλ‘ μμλ₯Ό μμ±νκ³ μμ νλ λ°©λ²λ€μ μμ보μ.
1. μμ(Element), λ Έλ(Node) μμ±
document.createElement(tag)
μλ‘μ΄ HTML μμ νκ·Έλ₯Ό μμ±
// 1. <div> μμ λ§λ€κΈ°
let div = document.createElement('div');
// 2. λ§λ μμμ ν΄λμ€λ₯Ό 'alert'λ‘ μ€μ
div.className = "alert";
// 3. λ΄μ© μ±μλ£κΈ°
div.innerHTML = "<strong>μλ
νμΈμ!</strong> μ€μ λ©μμ§λ₯Ό νμΈνμ
¨μ΅λλ€.";
document.createTextNode(text)
ν μ€νΈ λ Έλλ₯Ό μμ±νλ€
let textNode = document.createTextNode('μλ
νμΈμ.');
2. μμ μ½μ
node.append(λ Έλorλ¬Έμμ΄)
nodeμ λ§μ§λ§ μμμΌλ‘ μ½μ
node.prepend(...)
λ Έλμ 맨 μμͺ½ μμμΌλ‘ μ½μ
node.before(...), node.after(...)
νΉμ μμμ μμ΄λ λ€μ μ½μ
<ol id="ol">
<li>0</li>
<li>1</li>
<li>2</li>
</ol>
<script>
ol.before('before'); // <ol> μμ λ¬Έμμ΄ 'before'λ₯Ό μ½μ
ν¨
ol.after('after'); // <ol> λ€μ λ¬Έμμ΄ 'afterλ₯Ό μ½μ
ν¨
let liFirst = document.createElement('li');
liFirst.innerHTML = 'prepend';
ol.prepend(liFirst); // <ol>μ 첫 νλͺ©μΌλ‘ liFirstλ₯Ό μ½μ
ν¨
let liLast = document.createElement('li');
liLast.innerHTML = 'append';
ol.append(liLast); // <ol>μ λ§μ§λ§ νλͺ©μΌλ‘ liLastλ₯Ό μ½μ
ν¨
</script>
node.replaceWith(...)
κΈ°μ‘΄ λ Έλλ₯Ό λ€λ₯Έ λ Έλ λλ λ¬Έμμ΄λ‘ κ΅μ²΄
3. HTML λ¬Έμμ΄ μ½μ
eleminsertAdjacentHTML(whenre, html)
λ¬Έμμ΄ ννμ HTMLμ νκ·Έ κ·Έλλ‘ μ½μ
insertAdjacentText, insertAdjacentElement
HTML νμ± μνκ³ ν μ€νΈ or μμ μ½μ
<div id="div"></div>
<script>
div.insertAdjacentHTML('beforebegin', '<p>μλ
νμΈμ.</p>');
div.insertAdjacentHTML('afterend', '<p>μλ
ν κ°μΈμ.</p>');
</script>
4. μμ
node.remove()
ν΄λΉ λ Έλλ₯Ό λ¬Έμμμ μ κ±°
<script>
let div = document.createElement('div');
div.className = "alert";
div.innerHTML = "<strong>μλ
νμΈμ!</strong> μ€μ λ©μμ§λ₯Ό νμΈνμ
¨μ΅λλ€.";
document.body.append(div);
setTimeout(() => div.remove(), 1000);
</script>
5. 볡μ
elem.cloneNode(deep)
μμλ₯Ό 볡μ . (deep=true)μΌ κ²½μ° μμ μμλ€κΉμ§ 볡μ
<script>
let div2 = div.cloneNode(true); // λ©μμ§ μ°½ 볡μ
div2.querySelector('strong').innerHTML = 'μλ
ν κ°μΈμ!'; // 볡μ ν λ©μμ§ μ°½ λ΄μ© μμ
div.after(div2); // 볡μ ν λ©μμ§ μ°½μ κΈ°μ‘΄ λ©μμ§ μ°½ λ€μμ 보μ¬μ€
</script>
6. DocumentFragment μ¬μ©
DocumentFragment
μ¬λ¬ λ Έλλ₯Ό νλ¬ΆμμΌλ‘ λ¬Άμ΄λκ³ , λ¬Έμμ μ½μ ν λ ν¨μ¨μ μΌλ‘ μ½μ
<script>
function getListContent() {
let fragment = new DocumentFragment();
for(let i=1; i<=3; i++) {
let li = document.createElement('li');
li.append(i);
fragment.append(li);
}
return fragment;
}
ul.append(getListContent()); // (*)
</script>
2. μ€νμΌ μ μ©νκΈ°
μλ°μ€ν¬λ¦½νΈλ‘ HTML μμμ μ€νμΌμ λ³κ²½ν μ μλ€.
1) CSSμ ν΄λμ€λ₯Ό μ μνκ³ , μμμ ν΄λμ€λ₯Ό λΆμ΄κ±°λ
2) μμμ style μμ±μΌλ‘ μ§μ μ€νμΌμ μ§μ ν μ μλ€.
νμ§λ§ κ°λ₯νλ©΄ ν΄λμ€ λ°©μμΌλ‘ νλ κ²μ΄ μ μ§λ³΄μμ λ μ’λ€.
className
μμμ ν΄λμ€ μ 체λ₯Ό λ¬Έμμ΄λ‘ μ·¨κΈ
<body class="main page">
<script>
alert(document.body.className); // main page
</script>
</body>
classList
ν΄λμ€ νλλ§ μΆκ°/μ κ±°/ν κΈνκ³ μΆμ λ μ¬μ©νλ€
<body class="main page">
<script>
for (let name of document.body.classList) {
alert(name); // mainκ³Ό pageκ° μΆλ ₯λ¨
}
</script>
style νλ‘νΌν°
μμμ μΈλΌμΈ μ€νμΌμ μ‘°μν λ μ¬μ©
// μμλ₯Ό μ€ννλ©΄ νμ΄μ§μ <body>κ° κΉλΉ‘κ±°λ¦Ό
document.body.style.display = "none"; // hide
setTimeout(() => document.body.style.display = "", 1000); // 1μ΄ ν λ€μ μλ μνλ‘ λμμ΅λλ€.
style.cssText
μμμ style μμ± μ 체λ₯Ό νλμ λ¬Έμμ΄λ‘ μ€μ νκ±°λ μ½κ³ μΆμ λ μ¬μ©
<div id="div">λ²νΌ</div>
// cssTextλ₯Ό μ¬μ©νλ©΄ 'important' κ°μ κ·μΉλ μ€μ ν μ μμ
<script>
div.style.cssText=`color: red !important;
background-color: yellow;
width: 100px;
text-align: center;
`;
alert(div.style.cssText);
</script>
getComputedStyle(element, [pseudo])
μμμ μ΅μ’ μ μΌλ‘ μ μ©λ μ€νμΌμ μ½μ΄μ¬ λ μ¬μ©νλ€.
<head>
<style> body { color: red; margin: 5px } </style>
</head>
<body>
<script>
let computedStyle = getComputedStyle(document.body);
// μ΄μ λ§μ§κ³Ό μ μ 보λ₯Ό μ»μ μ μμ΅λλ€.
alert( computedStyle.marginTop ); // 5px
alert( computedStyle.color ); // rgb(255, 0, 0)
</script>
</body>
μ°Έκ³
'Front-end > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| λΈλΌμ°μ μ΄λ²€νΈ (0) | 2025.09.23 |
|---|---|
| λΈλΌμ°μ μ°½ μ¬μ΄μ¦μ μ€ν¬λ‘€ μ 보 μ»κΈ° (1) | 2025.09.22 |
| DOM λ Έλμ λμνλ ν΄λμ€ (0) | 2025.09.22 |
| E2 : μμ κ²μνκΈ° (0) | 2025.09.08 |
| E1 : JSλ‘ DOM κ°μ²΄ νμνκΈ° (0) | 2025.09.07 |
GitHub