์นํ์ด์ง
html, css : ๋ณด์ฌ์ง๋ ๊ฒ
javascript: ๋ณด์ฌ์ง๋๊ฒ ์ปจํธ๋กค ํ๊ธฐ ์ํจ
html
<!DOCTYPE html>
<head></head>
<body>
<div class="parent">
<div>child1</div>
<div>child2</div>
<div>child3</div>
</div>
</body>
</html>
javascript
const child1 ={
nonType:1,
nodeName: 'div'
childNode=[],
arrtibutes:[]
}
const parent = docuemnt.querySelector('parend')
parent.firstchild // #text
parent.childNodes // [div]
prenth.firstElementHild; // <div>child1</div>
html์ javascript ์๊ฒ ๊ทธ์ ๋ฌธ์์ผ ๋ฟ! ->
โ DOM ( Document Object Model )
html์ javascript ๊ฐ ์ดํดํ ์ ์๋ object ํํ๋ก ๋ณ๊ฒฝํ ๊ฒ
๊ทธ๋ ๊ฒ ์ ์ฅ๋ ์ ๋ณด = DOM Tree
node ๊ฐ์ฒด๋ก ๋ฐ๊พธ์ด ์ถ๊ฐ์ ์ธ ์์ ์ ํ ์ ์๊ฒ ํจ
์กฐ์ํ๊ณ ์ถ์ ์์ฑ์ ๊ณ ์น๋๋ฐ ํ์ํ ๋ฉ์๋, ํ๋กํผํฐ๋ฅผ ์ ๊ณตํ๋ ๊ฒ
ํธ๋ฆฌ๊ตฌ์กฐ ๋งํฌ์ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ๊ด๊ณ์ ์ธ ์ฑ๊ฒฉ์ด ์ ์ฌํจ (ex lastChild...)
parse
: ๋ฌธ์๋ฅผ ์๋ฏธ์๋ ๊ฐ์ฒด๋ก ๋ฐ๊พธ๋ ๊ฒ
node
: html์ด๋ผ๋ฉด ํ๋ํ๋ ์์(?)๋ผ๊ณ ๋ณผ ์ ์์ -> ์ฌ๋ฌ๊ฐ์ ํ์ ์ด ์์
โ Document Node
document ๋ก element ์ฐพ๊ณ , ๋ง๋ค๊ณ ...
html ๋ฌธ์ ์ ๋ฐ์ ๋ํ ์ ๋ณด
document.body
doctype : doctype์ด ๋ญ์ง
root node ๋ถํฐ ์ฌ์ฉํ ์ ์๋ ๊ทธ๋ฌํ ๊ฒ๋ค
โ docuemnt.querySelector
โ document.create....
โ Element Node
element = html tag = ์์
โgetAttribute() : ๊ฐ ์ป๊ธฐ
โsetAttribute() : ๊ฐ ์ง์
โremoveAttribute() : ๊ฐ ์ ๊ฑฐ
โญ๏ธ classList()
: ๋ฉ์๋ ์ ๊ณต
: toggle, add, remove
โ parent.classList.toggle('bye')
'bye'๋ผ๋ class ๊ฐ ์์ผ๋ฉด ๋นผ๊ณ ์์ผ๋ฉด ๋ฃ๊ธฐ
โ parent.innerHTML = '<div> bye </div>'
โ node ํ์ API
selector ๋ฌธ๋ฒ์ ์ด์ฉํ์ฌ ์ํ๋ ์๋ฆฌ๋จผํธ ์ฐพ๊ธฐ
getElementById()
id ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ์ฐพ๊ธฐ
document.getElementById("search__button")
document.getElementById("search__button").id;
document.getElementById("search__button").className;
// ํ์์ ์๋ ๊ฐ์ฒด display ์ญ์
document.getElementById("search__button").style.display="none";
// ํ์ ๊ฐ์ฒด display : block ํํ๋ก
document.getElementById("search__button").style.display="block";
// ํ์ ๊ฐ์ฒด์ text ๋ฃ๊ธฐ
document.getElementById("search__button").innderText="๋ณํ";
querySelector()
//class ๊ฒ์
document.querySelector(".search__button");
//id ๊ฒ์
document.querySelector("#search__button");
//body ํ๊ทธ ์์ a_button class
document.querySelector("body .a_button);
//a_button class ๋ฐ๋ก ์์ aaa_btn class
document.querySelector(".a_button > .aaa_btn);
โ node ํ์ API
<body>
<div>hi</div>
</body>
var body = document.querySelector('body');
body.nodeType ; // 1
var div = document.querySelector('body > div');
div.nodeType ; //1
body.firstChild.nodeType ; //3
element_node: 1
<p> <div>
text_node : 3
element ์ ์ด๋ ํ text
โ DOM ํ์
โDOM ํ์
- childNodes
- firstChild
- firstElementChild
- parentElement
- nextSibling
- nextElementSibling
โDOM ์กฐ์
elem
- removeChild()
- appendChild()
- insertBefore()
- cloneNode()
- replaceChild()
- closest() //์์๋ก ์ฌ๋ผ๊ฐ๋ฉด์ ๊ทผ์ ์๋ฆฌ๋จผํธ ์ฐพ๊ธฐ
โ appendChild ๋ฉ์๋
var div = docuemnt.createElement('div');
var str = document.TextNode('์ค๋ ํ๋ฃจ ์งฑ์ด์ผ');
var p = document.querySelector('p');
//div ์ str ๋ฃ๊ธฐ
div.appendChild(str);
// p ํ๊ทธ์ div ๋ฃ๊ธฐ
p.appendChild(div);
โ innerHTML ๋ฉ์๋
getter & setter ์ญํ ๋์ ๊ฐ๋ฅ
search__box class ๋ด 3๋ฒ์จฐ ์์
var base = docuemnt.querySelector("search__box tr:nth-child(3))");
serch__box class ๋ด table
var t = docuemnt.querySelector("search__box table");
//div ์์ฑ
div.appendChild(str);
// t๋ด์ base์๋ฆฌ ์์ div ์ฝ์
t.insertBeford(div,base)
โ innerText ๋ฉ์๋
getter & setter ์ญํ ๋์ ๊ฐ๋ฅ
div์ text์ abc text ์ถ๊ฐ
div.innderText += "abc";
โ innerAdjacentHTML ๋ฉ์๋
โ brforebegin
โ afterbegin
โ beforeend
โ afterend
var base = document.querySelector('div');
base.insertAdjacentHTML('afterbegin','<h1>hi</h1>);
โ template ๋ฌธ๋ฒ์ ์ด์ฉํ html ๋ฌธ์์ด ๋ง๋ค๊ธฐ
${ }
JSON + HTML => ์๋ก์ด HTML ๋ฌธ์์ด ๋ง๋ค๊ธฐ
-> appendchild
const data = {
name: new Date().getDay();
}
const str = `<div><span>hi today is {data.name} </span></div>`
'๐ JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Node.JS express๋ก ์๋ฒ ๊ตฌ์ฑํ๊ธฐ (5) | 2021.02.23 |
---|---|
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด (0) | 2021.02.22 |
์ด๋ฒคํธ ๋ฒ๋ธ๋ง, ์ด๋ฒคํธ ์บก์ณ๋ง - DOM์ ์ด๋ฒคํธ ํธ๋ค๋ง (0) | 2021.02.22 |
[JavaScript ] ์ด๋ฒคํธํธ๋ค๋ง (0) | 2021.02.16 |
์๋ฐ์คํฌ๋ฆฝํธ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ (0) | 2021.02.08 |
๋๊ธ