
๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด ์ฌ์์ ํฌํจ๋์ง ์๊ณ ์น ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ ๊ฐ์ฒด์ด๋ค.
๐ฝ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ์ ์ข ๋ฅ
์ฃผ์ ์์ฑ
- innerWidth : ์น ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๋๋น
- innerHeight : ์น ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๋์ด
- outerWidth : ์น ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๋๋น
- outerHeight : ์น ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๋์ด
- screenTop/screenY : ์น ๋ธ๋ผ์ฐ์ ์์ชฝ ๋ฉด๊ณผ ๋ชจ๋ํฐ์ ๊ฐ๊ฒฉ
- screenLeft/screenX : ์น ๋ธ๋ผ์ฐ์ ์ผ์ชฝ ๋ฉด๊ณผ ๋ชจ๋ํฐ์ ๊ฐ๊ฒฉ
- scrollX : ์น ๋ธ๋ผ์ฐ์ ์ ์ํ ์คํฌ๋กค ์์น
- scrollY : ์น ๋ธ๋ผ์ฐ์ ์ ์์ง ์คํฌ๋กค ์์น
์ฃผ์ ๋ฉ์๋
- alert() : ์๋ฆผ์ฐฝ ํ์
- confirm() : ํ์ธ์ฐฝ ํ์
- prompt() : ์ ๋ ฅ์ฐฝ ํ์
- open() : ์๋ก์ด ์น ๋ธ๋ผ์ฐ์ ์ฐฝ ์ด๊ธฐ
- colse() : ์น ๋ธ๋ผ์ฐ์ ์ฐฝ ๋ซ๊ธฐ
- scrollTo() : ์น ๋ธ๋ผ์ฐ์ ์ ์คํฌ๋กค์ ํน์ ์์น๋งํผ ์ด๋
- scrollBy() : ์น ๋ธ๋ผ์ฐ์ ์ ์คํฌ๋กค์ ํ์ฌ ์์น์์ ์๋ ์์น๋ก ์ด๋
//alert()
alert('๊ฒฝ๊ณ ๋ฉ์์ง ํ์
๋ฉ์์ง');
//confirm()
let isOk = confirm('์งํํ์๊ฒ ์ต๋๊น?'); //ํ์ธ์ ๋ฐ๋ ๊ฒ! ํ์ธ or ์ทจ์ ๋ฒํผ
console.log(isOk); //ํ์ธ->true / ์ทจ์->false๋ฅผ ๋ฐํ
if(isOk == true){
//์งํ
} else{
//๋ฉ์ถค
} //๊ณผ ๊ฐ์ ๋ก์ง์ผ๋ก ์ธ ์ ์์
//prompt
let result = prompt('๋น์ ์ ๋์ด๋?'); //์
๋ ฅ์ ๋ฐ๋ ํํ
console.log(result); //ํ์ธ->์
๋ ฅ๋ฐ์๊ฐ์ ๋ฐํ / ์ทจ์->null
let result2 = prompt('์งํํ์๊ฒ ์ต๋๊น? (์งํ:์, ์ค์ง:์๋์ค ์
๋ ฅ)', '์'); //์ฝค๋ง(,) ๋ค์ default๊ฐ์ ๋ฃ์ ์ ์๋ค(๋ต๋ณ์ ๋)
behavior ์์ฑ
scrollTo() ๋ฉ์๋๋ scrollBy() ๋ฉ์๋ ์ฌ์ฉ ์ behavior ์์ฑ์ ์ ๋ฌํ ์ ์์ผ๋ฉฐ, ๊ฐ์ผ๋ก smooth๋ฅผ ๋ฃ์ผ๋ฉด ์คํฌ๋กค์ด ๋ถ๋๋ฝ๊ฒ ์ด๋ํ๋ค.
๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM : Document Object Model)์ ์น ๋ธ๋ผ์ฐ์ ์ ํ์๋๋ ๋ฌธ์๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ดํดํ ์ ์๋๋ก ๊ฐ์ฒดํํ ๋ชจ๋ธ ๊ตฌ์กฐ์ด๋ค.
๐ฝchildNodes
๐ฝchildNodes[n]
๐ฝlastChild
์ ์์ฑ์ผ๋ก ๋ ธ๋ ์ ํํ๊ธฐ๋ณด๋ค ๋ฉ์๋๋ก ๋ ธ๋ ์ ํํ๊ธฐ๊ฐ ์ฃผ๋ก ์ฐ์ธ๋ค. ์์ฑ๊ฐ๊ณผ ํ๊ทธ๋ช ์ฌ์ฉํ๊ธฐ๋ก get ๋ฉ์๋๋ฅผ ์ด์ฉํ ์ ์๊ณ , CSS ์ ํ์ ์ฌ์ฉํ๊ธฐ๋ก query ๋ฉ์๋๋ฅผ ์ด์ฉํ ์ ์๋ค.
<!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>Document</title>
</head>
<body>
<p>pํ๊ทธ1</p>
<p>pํ๊ทธ1</p>
<div id="div1">๊ณ ์ ์์ด๋</div>
<div class="divcls">ํด๋์ค1</div>
<div class="divcls">ํด๋์ค2</div>
<div class="container1">
<div class="indiv"></div>
<div class="indiv"></div>
<div class="indiv"></div>
</div>
<div class="container2"></div>
<script>
const el1 = document.getElementById("div1"); //์ง์ ์์ด๋ ์ด๋ฆ์ ์์
const el2s = document.getElementsByClassName("divcls"); //์ง์ ํด๋์ค ์ด๋ฆ์ ์์
const el3s = document.getElementsByTagName("p"); //pํ๊ทธ์ธ ์์
console.log(el1);
console.log(el2s);
console.log(el3s);
</script>
</body>
</html>
๐ฝconsole
<!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>Document</title>
</head>
<body>
<p>pํ๊ทธ1</p>
<p>pํ๊ทธ1</p>
<div id="div1">๊ณ ์ ์์ด๋</div>
<div class="divcls">ํด๋์ค1</div>
<div class="divcls">ํด๋์ค2</div>
<div class="container1">
<div class="indiv"></div>
<div class="indiv"></div>
<div class="indiv"></div>
</div>
<div class="container2">
<div class="indiv"></div>
</div>
<script>
const qs1 = document.querySelector("#div1");
const qs2s = document.querySelectorAll(".divcls");
const qs3s = document.querySelectorAll(".indiv");
const qs4s = document.querySelectorAll(".container1 .indiv");
console.log(qs1);
console.log(qs2s);
console.log(qs3s);
console.log(qs4s);
</script>
</body>
</html>
๐ฝconsole
<!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>Document</title>
</head>
<body>
<p id="title">pTag๋ฌธ์, <span style="display:none;">spanํ๊ทธ</span></p>
</body>
</html>
๐ฝconsole
์คํ์ผ์ ์กฐ์ํ๊ธฐ ์ํ ํํ๋ ๋
ธ๋.style.css์์ฑ๋ช
= ์์ฑ๊ฐ;์ ๊ฐ๋ค.
<!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>Document</title>
</head>
<body>
<p id="t1"></p>
<p id="t2"></p>
<p id="t3"></p>
<script>
document.querySelector('#t1').textContent = '<strong>textContent</strong> ์์ฑ';
document.querySelector('#t2').innerText = '<strong>textContent</strong> ์์ฑ';
document.querySelector('#t3').innerHTML = '<strong>textContent</strong> ์์ฑ';
//์คํ์ผ ์กฐ์ํ๊ธฐ
document.querySelector('#t1').style.color = 'red';
const pt2 = document.querySelector('#t2');
pt2.style.color = 'blue';
const pt3 = document.getElementById('t3');
pt3.style.fontSize = '30px';
</script>
</body>
</html>
๐ฝ์คํ ๊ฒฐ๊ณผ
ํด๋์ค ์์ฑ์ ํตํด ์ถ๊ฐ์ ์ญ์ ๋ฅผ ์กฐ์ํ ์ ์๋ค.
๋
ธ๋.classList.add(class์์ฑ๊ฐ);๋
ธ๋.classList.remove(class์์ฑ๊ฐ);๋
ธ๋.classList.toggle(class์์ฑ๊ฐ);<!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>Document</title>
<style>
.box{
width: 100px;
height: 100px;
border: 1px solid black;
}
.redbox{
background-color: red;
}
.bluebox{
background-color: blue;
}
.greenbox{
background-color: green;
}
button{
margin-top: 10px;
color: white;
background-color: black;
}
</style>
</head>
<body>
<div id="box1" class="box"></div>
<div id="box2" class="box"></div>
<div id="box3" class="box"></div>
<div id="box4" class="box redbox"></div>
<button onclick="box4toggle()">๋ค๋ฒ์งธ๋ฐ์คํ ๊ธ</button>
<script>
document.getElementById('box1').classList.add('redbox');
document.querySelector('#box2').classList.add('bluebox');
document.querySelector('#box3').classList.add('greenbox');
document.getElementById('box4').classList.remove('redbox');
function box4toggle(){
document.getElementById('box4').classList.toggle('redbox');
}
</script>
</body>
</html>
๐ฝ์คํ ๊ฒฐ๊ณผ
=> '๋ค๋ฒ์งธ๋ฐ์คํ ๊ธ'๋ฒํผ์ ๋๋ฅด๋ฉด์ ์น ๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฐ์๋๊ตฌ๋ฅผ ์ดํด๋ณด์๋ค. ๋ค๋ฒ์งธ๋ฐ์คํ ๊ธ ๋ฒํผ์ ๋๋ฅผ ๋๋ง๋ค Elements > body > div id="box4"์ ํด๋์ค์ redbox ํด๋์ค๊ฐ ์ถ๊ฐ๋์๋ค๊ฐ ์ญ์ ๋๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ค.
๋
ธ๋.getAttribute("์์ฑ๋ช
");๋
ธ๋.setAttribute("์์ฑ๋ช
", "์์ฑ๊ฐ");๋
ธ๋.removeAttribute("์์ฑ๋ช
");<body>
<a href="https://www.naver.com" target="_blank">๋๋ฅด๋ฉด์ฌ์ดํธ์ด๋</a>
<script>
const atag = document.querySelector('a');
console.log(atag.getAttribute("href"));
console.log(atag.getAttribute("target"));
atag.setAttribute("href", "https://www.daum.net"); //์์ฑ๊ฐ์ ๋ฐ๊ฟ
console.log(atag.getAttribute("href"));
</script>
</body>
<!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>Document</title>
<style>
button{
margin-top: 10px;
color: white;
background-color: black;
}
</style>
</head>
<body>
<a href="https://www.naver.com" target="_blank">๋๋ฅด๋ฉด์ฌ์ดํธ์ด๋</a>
<br>
<button onclick="changeUrl()">๋ค์ด๋ฒ๋ฅผ๋ค์์ผ๋ก</button>
<script>
const atag = document.querySelector('a');
console.log(atag.getAttribute("href"));
console.log(atag.getAttribute("target"));
function changeUrl(){
atag.setAttribute("href", "https://www.daum.net");
}
</script>
</body>
</html>
๋ ธ๋ ์์ฑ
- ์์ ๋ ธ๋ ์์ฑ : createElement()
- ํ ์คํธ ๋ ธ๋ ์์ฑ : createTextNode()
- ์์ฑ ๋ ธ๋ ์์ฑ : createAttribute()
๋ ธ๋ ์ฐ๊ฒฐ
- ์์ ๋ ธ๋ ์ฐ๊ฒฐ : ๊ธฐ์ค๋ ธ๋.appendChild(์์๋ ธ๋);
- ์์ฑ ๋ ธ๋ ์ฐ๊ฒฐ : ๊ธฐ์ค๋ ธ๋.setAttributeNode(์์ฑ๋ ธ๋);
๋ ธ๋ ์ญ์
- ์์ ๋ ธ๋ ์ญ์ : ๋ถ๋ชจ๋ ธ๋.removechild(์์๋ ธ๋);
<!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>Document</title>
</head>
<body>
<div id="container">
<p id="p1">p1</p>
<p id="p2">p2</p>
</div>
<script>
const newE1 = document.createElement("a"); //์์ ๋
ธ๋ ์์ฑ
const linkText = document.createTextNode("๋งํฌ๊ธ์"); //ํ
์คํธ ๋
ธ๋ ์์ฑ
const linkHref = document.createAttribute("href"); //์์ฑ ๋
ธ๋ ์์ฑ
linkHref.value = "https://www.naver.com"; //์์ฑ๊ฐ ๋ฃ๊ธฐ
const linkTarget = document.createAttribute("target");
linkTarget.value = "_blank";
newE1.appendChild(linkText);
newE1.setAttributeNode(linkHref);
newE1.setAttributeNode(linkTarget);
document.body.appendChild(newE1); //๋
ธ๋ ์ฐ๊ฒฐ
const p2 = document.querySelector("#p2");
p2.parentNode.removeChild(p2); //๋
ธ๋ ์ญ์
</script>
</body>
</html>