DOM
๐ถ ๋ ๋๋ง
โป Parsing
- HTML๊ณผ CSSํ์ผ์ ํ์ฑํ์ฌ ๊ฐ๊ฐ DOM Tree๋ฅผ ๋ง๋๋ ์์
โป Style - ๋ Tree๋ฅผ ๊ฒฐํฉํ์ฌ Rendering Tree๋ฅผ ๋ง๋๋ ์์
โป Layout - Rendering Tree ์์ ๊ฐ ๋
ธ๋์ ์ด์น์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ๋ ์์
โป Paint - Layout์์ ๊ณ์ฐ๋ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ ๋
ธ๋๋ฅผ ํฝ์
๋ก ๊ทธ๋ฆฌ๋ ์์
โป Composite - ๊ทธ๋ ค์ง ์ฌ๋ฌ ๋ ์ด์ด๋ฅผ ํฉ์ณ ์ต์ข ํ๋ฉด์ ๊ตฌ์ฑํ๋ ์์
๐ถ DOM (Document Object Model)
โป ๊ฐ๋
- ๊ฐ์ฒด ํํ๋ก ์ชผ๊ฐ๋๊ฒ
- ์นํ์ด์ง์ ์ฝํ ์ธ ๊ตฌ์กฐ ์คํ์ผ ์์๋ฅผ ๊ตฌ์กฐํ ํ์ฌ ์์์ ์ ๊ทผ๋ฐ ์กฐ์์ ํ ์์๋๋ก ์ ๊ณตํ๋ Web API
โป ๊ตฌ์กฐ
![[Screenshot_380.png]]

๐ถ ์์ ์ ๊ทผ ๋ฐฉ๋ฒ
โป Document
โฝ๊ฐ๋
: ์นํ์ด์ง ์์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด๋ก HTML์์์ ์ ๊ทผํ๋ ค๋ฉด ๋ฐ๋์ ์ ๊ทผ ํด์ผ ํ๋ ์์
โฝํน์ง : DOM์คํ์ ์ฒซ๋ฒ์งธ ๋ก ์ ๊ทผํด์ผํ๋ค.
โฝ์์ฃผ์ฌ์ฉํ๋ ์์ ์ ๊ทผ ์ข
๋ฅ
![[Screenshot_381.png]]

์์1
โปid์์ฑ ํ
์คํธ ์ถ๋ ฅํ๊ธฐ
html
<body> โโโโ<h1 id="h1Tag">DOM ์ฌ์ฉํ๊ธฐ</h1> โโโโ<ul> โโโโโโโโ<li>HTML</li> โโโโโโโโ<li>CSS</li> โโโโโโโโ<li>JS</li> โโโโโโโโ<li>Java</li> โโโโโโโโ<li>Python</li> โโโโโโโโ<li>Ruby</li> โโโโโโโโ<li>Kotlin</li> โโโโโโโโ<li>C#</li> โโโโโโโโ<li>C++</li> โโโโ</ul> </body>
js
let h1Element = document.getElementById('h1Tag') console.log(h1Element.textContent)
console(browser)
![[Screenshot_384.png]]

์์2
โป ๋ฐฐ์ด๋ฐ์ดํฐ ํ๋ฒ์ ์ถ๋ ฅํ๊ธฐ( querySelectAll() )
html
<body> โโโโ<h1 id="h1Tag">DOM ์ฌ์ฉํ๊ธฐ</h1> โโโโ<ul> โโโโโโโโ<li>HTML</li> โโโโโโโโ<li>CSS</li> โโโโโโโโ<li>JS</li> โโโโโโโโ<li>Java</li> โโโโโโโโ<li>Python</li> โโโโโโโโ<li>Ruby</li> โโโโโโโโ<li>Kotlin</li> โโโโโโโโ<li>C#</li> โโโโโโโโ<li>C++</li> โโโโ</ul> </body>
js
let liElements = document.querySelectorAll('li') console.log(liElements) for(let i=0;i<liElements.length;i++){ โโโโconsole.log(liElements[i].textContent) }
console(browser)
![[Screenshot_383.png]]

์์3
โปinput์ Name ์์ฑ์ผ๋ก ํ
์คํธ ์ถ๋ ฅํ๊ธฐ
html
<body> โโโโ<input type="text" name="prac" value="ํ์ธ1"> โโโโ<input type="text" name="prac" value="ํ์ธ2"> </body>
js
// input์ name์ ํตํด์ ์์์ ์ ๊ทผ let input_name = document.getElementsByName('prac') // // ์ค์ต ๋ฐ๋ณต๋ฌธ์ผ๋ก input ๋ด์ ๊ฐ๋ค์ ์ถ์ถํ๊ธฐ for(let i=0;i<input_name.length;i++){ โโโโconsole.log("res"+i+" : "+input_name[i].value) }
console(browser)
![[Screenshot_389.png]]

์์4
โป CSS์ ํ์๋ฅผ ํตํด ํ
์คํธ ์ถ๋ ฅํ๊ธฐ ( querySelector() )
html
<body> โโโโโ<span id="span_id">๋ณธ๋ฌธ๋ด์ฉํ์ธ</span> </body>
js
// ํด๋น๋ ์ ํ์ ์์ 1๊ฐ๋ฅผ ๋ฐํ let span_id = document.querySelector("#span_id") console.log(span_id.innerText)
console(browser)
![[Screenshot_390.png]]

โป ์์ ํ
์คํธ ์ถ๋ ฅ ํจ์ ์ฐจ์ด
โฝ innerText
- ์์๋ด์ ํ
์คํธ๋ง ์ถ์ถ
โฝ innerHTML - ์์ ์ ์ฒด๋ฅผ ์ถ๋ ฅ(ํ๊ทธ + ๋ฌธ์)
html
<h1 id="tit"> โโโโ<span>์ค๋ <strong>๋ ์จ๊ฐ ๋ฅ๋ค</strong> </span> </h1>
js
console.log(tit.innerText); console.log(tit.innerHTML);
console
![[Screenshot_392.png]]

๐ถ ์์ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ
![[Screenshot_391.png]]

โป 1. ์์์ ๊ทผ
let tit = document.getElementById('tit');
โป 2-1. ์์์ ๊ทผํ ๋ณ๊ฒฝ
// 2-1 ํ
์คํธ์ถ์ถ tit.innerText = '<a href="#">DOM ๋ฐฐ์ฐ๋ ์ค</a>'; // 2-2 html ์ถ์ถ tit.innerHTML = '<a href="https://www.naver.com">DOM ๋ฐฐ์ฐ๋ ์ค</a>';
โป 3-1 ๊ฒฐ๊ณผ
![[Screenshot_393.png]]

โป 2-2. ์์์ ๊ทผํ ๋ณ๊ฒฝ
// 2-2 html ์ถ์ถ tit.innerHTML = '<a href="https://www.naver.com">DOM ๋ฐฐ์ฐ๋ ์ค</a>';
โป 3-2 ๊ฒฐ๊ณผ
![[Screenshot_394.png]]

---> innerText๋ก ๋ณ๊ฒฝ์ ํ
์คํธ ์์ฒด๋ก ๋ณ๊ฒฝ๋์ด ํ๊ทธ์ด์ฉ x
---> innerHTML๋ก ๋ณ๊ฒฝ์ ํ๊ทธํฌํจ ์ ์ฒด html๋ณ๊ฒฝ ๊ฐ๋ฅ
โป ์ค์ต1
๋ฒํผ์ ํด๋ฆญ์, ์ซ์๋ฅผ ์ฆ๊ฐ์ํค๋ ํ๋ก๊ทธ๋จ ๊ตฌํ
html
<body> โโโโ<div class="w-80 border"> โโโโโโโโ<h1 id="num">0</h1> โโโโโโโโ<button class="btn btn-success" onclick="increase()">์ฆ๊ฐ</button> โโโโโโโโ<button class="btn btn-danger" onclick="decrease()">๊ฐ์</button> โโโโ</div> </body>
js
// ๋ฒํผ์ ํด๋ฆญ์, ์ซ์๋ฅผ ์ฆ๊ฐ์ํค๋ ํ๋ก๊ทธ๋จ ๊ตฌํ const increase = () => { โโโโconsole.log("increase func run") โโโโlet num = document.getElementById("num") โโโโnum.innerHTML = parseInt(num.innerHTML) +1 } const decrease = () => { โโโโconsole.log("decrease func run") โโโโlet num = document.getElementById("num") โโโโnum.innerHTML = parseInt(num.innerHTML) -1 }
view
![[Screenshot_397.png]]

โป ์ค์ต2
๋ฒํผ์ ํด๋ฆญ์, ์ซ์๋ฅผ ์ฆ๊ฐ์ํค๋ ํ๋ก๊ทธ๋จ ๊ตฌํ
html
<body> โโโโ<div class="container"> โโโโโโโโ<div class="form-group"> โโโโโโโโโโโโ<input type="text" id="inputTag" class="form-control" placeholder="์
๋ ฅ ํ๋ 1"> โโโโโโโโโโโโ<button class="btn btn-black mt-2" onclick="showAlert()">ํด๋ฆญ</button> โโโโโโโโ</div> โโโโโโโโ<div class="form-group"> โโโโโโโโโโโโ<input type="text" id="inputTag2" class="form-control" placeholder="์
๋ ฅ ํ๋ 2"> โโโโโโโโโโโโ<button class="btn btn-orange mt-2" onclick="showInputText()" >ํด๋ฆญ</button> โโโโโโโโ</div> โโโโ</div> </body>
js
let showAlert = () =>{ โโโโlet inputTag = document.getElementById("inputTag") โโโโalert(inputTag.value) } let showInputText = () =>{ โโโโlet inputTag2 = document.getElementById("inputTag2") โโโโdocument.write(`<h1> ${inputTag2.value}</h1>`) }
view
![[Screenshot_402.png]]

![[Screenshot_403.png]]

![[Screenshot_404.png]]

'โ Language > โน Java Script' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
7. ์ด๋ฒคํธ (0) | 2025.05.29 |
---|---|
5. ๊ฐ์ฒด (2) | 2025.05.22 |
4. ํจ์ (0) | 2025.05.22 |
3. ๋ฐ๋ณต๋ฌธ (1) | 2025.05.21 |
2. ์กฐ๊ฑด๋ฌธ (1) | 2025.05.21 |