์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ComputerScience
- ์๋ฐ
- ์ปดํจํฐ๊ณผํ
- ์นํผ๋ธ๋ฆฌ์ฑ
- JavaScript
- ์ค๋ผํด
- ๋ ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ฝ๋ฉ
- ๋ผํ๋ผ์ค์๋ง๋
- ์๋ฐ์คํฌ๋ฆฝํธ
- ํ์ด์ฌ
- database
- ์ํ
- K๋ฐฐํฐ๋ฆฌ
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ํ๋ก๊ทธ๋๋ฐ
- ๊ฐ๋ฐ
- ๊น๋ฏธ๊ฒฝ
- css
- html
- Java
- ์ฅํธ์์ค
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- Python
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ๋ฐ์ํ
- ๊นํ๋จ
- ์ฑ
- Today
- Total
JiYoung Dev ๐ฅ
javascript DOM (2023.05.01) ๋ณธ๋ฌธ
๐ DOM (Document Object Model)
HTML ๋ฌธ์์ ์์์ ์ ๊ทผํ์ฌ ์ ์ดํ ์ ์๋๋ก ๊ฐ์ฒด๋ก ๋ชจ๋ธ๋ง
๋ฌธ์ ๋ด์ ๋ชจ๋ ์์๋ฅผ ์ ์ํ๊ณ , ๊ฐ๊ฐ์ ์์์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณต
๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM)์ HTML, XML ๋ฌธ์์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค์. DOM์ ๋ฌธ์์ ๊ตฌ์กฐํ๋ ํํ์ ์ ๊ณตํ๋ฉฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ DOM ๊ตฌ์กฐ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ๊ทธ๋ค์ด ๋ฌธ์ ๊ตฌ์กฐ, ์คํ์ผ, ๋ด์ฉ ๋ฑ์ ๋ณ๊ฒฝํ ์ ์๊ฒ ๋์.
์นํ์ด์ง๋ ์ผ์ข ์ ๋ฌธ์(document)์. ์ด ๋ฌธ์๋ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ๊ทธ ๋ด์ฉ์ด ํด์๋์ด ์น ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๋ํ๋๊ฑฐ๋ HTML ์์ค ์์ฒด๋ก ๋ํ๋จ.
๐ HTML ๋ฌธ์์ ํธ๋ฆฌ๊ตฌ์กฐ
Document ๊ฐ์ฒด๋ ์น ํ์ด์ง ๊ทธ ์์ฒด๋ฅผ ์๋ฏธํจ. ์น ํ์ด์ง์ ์กด์ฌํ๋ HTML ์์์ ์ ๊ทผํ๊ณ ์ ํ ๋๋ ๋ฐ๋์ Document ๊ฐ์ฒด๋ถํฐ ์์ํด์ผ ํจ
HTMLElement
๋ชจ๋ ์ข ๋ฅ์ HTML ์์๋ฅผ ๋ํ๋ด๋ ์ธํฐํ์ด์ค
getElement ๋ฉ์๋๋ฅผ ํตํด์ ์ํ๋ ๊ฐ์ฒด๋ฅผ ์กฐํ
์กฐํ๋ ๊ฐ์ฒด๋ค์ ๋์์ผ๋ก ๊ตฌ์ฒด์ ์ธ ์์ ์ฒ๋ฆฌ
โ๏ธ Document๋ก ์ ๊ทผํด์ HTML ์์ ๊ฐ์ ธ์ค๊ธฐ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dom Start</title>
</head>
<body>
<p id="pTag">DOM ์์ํ๊ธฐ</p>
<script>
// ๋ฌธ์์ → document
// ์ ๊ทผํด์ → .
// ๊ฐ์ ธ์ฌ๊ฑฐ์ผ → get
// ์์๋ฅผ → Element
// ์์ด๋๋ก → ById
let pElement = document.getElementById('pTag');
console.log(pElement);
</script>
</body>
</html>
๊ฐ์ฒด ๋ฐํ ๋ฉ์๋
id๋ html ๋ด ๋จ ํ๋๋ง ์ฌ์ฉํ ์ ์์ → element
๋๋จธ์ง๋ → elements
HTMLCollection ๊ฐ์ฒด
์ ์ฌ ๋ฐฐ์ด์ ํํ
๋ฐฐ์ด์ ๊ธธ์ด์ ์ธ๋ฑ์ค๋ ๊ฐ์ง๊ณ ์์ผ๋ ๋ฐฐ์ด์ ๋ฉ์๋(push, pop)์ ์ฌ์ฉํ ์ ์์
โ๏ธ DOM ์ฌ์ฉํ๊ธฐ ์ค์ต
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DOM Property</title>
</head>
<body>
<div id="container">
<p>DOM ์ฌ์ฉํ๊ธฐ</p>
</div>
<button id="textBtn">TEXT</button>
<!--
์ธ๋ผ์ธ ์คํฌ๋ฆฝํธ๋ก ํด๋ฆญ ์ด๋ฒคํธ ์ฃผ๊ธฐ
onclick = "ํจ์์ด๋ฆ()"
-->
<button onclick="htmlFunc()">HTML</button>
<script>
// 1. div ์์์ ์ ๊ทผํ๊ธฐ
let domVal = document.getElementById('container');
console.log('์์ ๊ฐ์ ธ์ค๊ธฐ :', domVal);
// 2. TEXT ๋ฒํผ ํด๋ฆญ์, ์์์์ ๋ด์ฉ๋ง ์ถ๋ ฅ๋๋๋ก
// addEventListener(์ด๋ฒคํธํ์
, ์ด๋ฒคํธํธ๋ค๋ฌ)
document.getElementById('textBtn').addEventListener('click', ()=> {
// ํด๋ฆญ ์ด๋ฒคํธ ์ ๊ฑธ๋ ธ๋์ง ํ์ธ!
// console.log('text click');
let domText = document.getElementById('container').innerText;
console.log('๋ด์ฉ๋ง :', domText);
console.log('๋ด์ฉ๋ง2 :', domVal.innerText);
// ๋ด์ฉ ๋ณ๊ฒฝ
domVal.innerText = '<h1>JavaScript</h1>';
})
// 3. HTML ๋ฒํผ ํด๋ฆญ์ ์์์์ ํ๊ทธ๊น์ง
const htmlFunc = ()=>{
// ํด๋ฆญ ์ด๋ฒคํธ ์ ๊ฑธ๋ ธ๋์ง ํ์ธ!
// console.log('html click');
// ํ๊ทธ๊น์ง ๋ด์ฉ ๋ณ๊ฒฝ
domVal.innerHTML = '<h1>JavaScript</h1>'
}
</script>
</body>
</html>
โ๏ธ HTML Collection ๊ฐ์ฒด ๋ฐํ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML Collection</title>
</head>
<body>
<ul>
<li>์๋๋ถ์ฐ๊ฐ</li>
<li>์คํ
์ดํฌ๋์ฅ๋ฐฅ</li>
<li>์๋ฐฅ</li>
</ul>
<script>
// getElements~ ๋ฉ์๋ ์ฌ์ฉํด์ ์์ ๊ฐ์ ธ์ค๊ธฐ
// → HTMLCollection ๊ฐ์ฒด ๋ฐํ
// ๋ฐฐ์ด์ฒ๋ผ ์ธ๋ฑ์ค ๋ฒํธ์ ๊ธธ์ด๋ฅผ ๊ฐ๋๋ค!
// li ์์๋ค ๊ฐ์ ธ์ค๊ธฐ
let foodList = document.getElementsByTagName('li');
console.log(foodList);
console.log(foodList[1]);
console.log(foodList[1].innerText);
// ๋ฐ๋ณต๋ฌธ์ผ๋ก ์์ ํ์ธํ๊ธฐ
for(let i = 0 ; i < foodList.length ; i++){
console.log(foodList[i].innerText);
}
// foreach ํจ์ ์ฌ์ฉ์ ์๋ฌ ๋ฐ์ => collection์์๋ ๋ฐฐ์ด ๊ด๋ จ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค!
// ๋ฐฐ์ด ๊ด๋ จ ํจ์ ์ฌ์ฉ ๋ถ๊ฐ → ์ ์ฌ ๋ฐฐ์ด
foodList.forEach(element => {
console.log(element.innerText);
});
</script>
</body>
</html>
'full stack > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
javascript CallBack ํจ์ & jQuery (2023.05.03) (0) | 2023.05.03 |
---|---|
javascript DOM ์์์ ์ ํ ๋ฐ input, style, img ๋ณ๊ฒฝ (2023.05.02) (0) | 2023.05.02 |
javascript ๊ฐ์ฒด(Object) (2023.04.28) (1) | 2023.04.29 |
javascript ๋ฐฐ์ด ์ค์ต, ํจ์ (2023.04.27) (0) | 2023.04.27 |
javascript ๋ฐ๋ณต๋ฌธ ์ค์ต & ์์ฑ ์์น & ๋ฐฐ์ด(2023.04.26) (0) | 2023.04.26 |