DOM์ด๋?
์น ํ์ด์ง ์ฝํ ์ธ ๋ฅผ ์กฐ์ํ๋ ๋ฉ์๋์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
XML์ HTML์์ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฅ๋ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค.
Node
ELement
์ฃผ์ ์์ฑ | ์ค๋ช |
closest(selector) | ๊ฐ์ฅ ๊ฐ๊น์ด ์กฐ์์ ์ฐพ๋๋ค. |
children | ๋ชจ๋ ์์ ์์๋ฅผ ์ฐพ๋๋ค. ํ๊ทธ๋ง ๊ฒ์. ์์์ ์์ ์์์ด ์์ผ๋ฉด children์ length๋ 0 |
fitstElementChild | ์์์ ์ฒซ๋ฒ์งธ ์์์ ๋ฐํ. ํ๊ทธ๋ง ๊ฒ์, ์์ ์์๊ฐ ์๋ ๊ฒฝ์ฐ null๋ฐํ |
innerHTML | ์์์ HTML ์ปจํ ์ธ ๋ฅผ ์ค์ ํ๊ฑฐ๋ ๋ฐํ |
getAttribute | ์์์ ์ง์ ๋ ์์ฑ๊ฐ์ ๋ฐํ |
setAttribute | ์ง์ ๋ ์์ฑ์ ์ง์ ๋ ๊ฐ์ผ๋ก ์ค์ ํ๋ฉฐ, ์ด๋ฏธ ์กด์ฌํ๋ ์์ฑ์ด๋ฉด ๊ฐ์ ๋ณ๊ฒฝ |
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>
<h3>๋
ธ๋ ์ถ๊ฐ ๋ฐ ์ญ์ </h3>
<div id="subjectLayout"
style="width: 300px; min-height: 300px; border: 1px solid tomato;">
<p>์๋ฐ</p>
<p>์๋๋ก์ด๋</p>
<p>ํ๋ ์์ํฌ</p>
</div>
<hr>
<div>
<p>
<button type="button" onclick="fun1();">๋
ธ๋์ ๋ณด</button>
<button type="button" onclick="fun2();">๋
ธ๋์ถ๊ฐ</button>
<button type="button" onclick="fun3();">ํน์ ๋
ธ๋์์์ถ๊ฐ</button>
<button type="button" onclick="fun4();">๋
ธ๋์ญ์ </button>
<button type="button" onclick="fun5();">์คํ์ผ์์ ๊ธฐ</button>
</p>
</div>
<script type="text/javascript">
window.addEventListener('load',function(){
//children : ํ๊ทธ๋ง ๊ฒ์
const ps = document.querySelector('#subjectLayout').children;
//const ps = document.querySelectorAll('#subjectLayout > p');
for(let el of ps){
el.addEventListener('click',function(e){
alert(this.firstChild.nodeValue); // this > ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ ๊ฐ์ฒด
// firstChild : ๋ชจ๋ ๊ฐ์ ธ์ด
});
}
});
function fun1() {
const divEL = document.querySelector('#subjectLayout');
let s;
// ์์ฑ ์ถ๊ฐ
divEL.setAttribute('title','๊ณผ๋ชฉ');
// ์์ฑ ํ์ธ
s = divEL.getAttribute('style');
alert(s);
// ์์ ์ ๋ณด
// childNodes : ์์ ์ ๋ณด(๋ฌธ์์ด, ๊ณต๋ฐฑ, ์ํฐ, ํ๊ทธ๋ฑ)
// s+= '๋
ธ๋์ :' + divEL.childNodes.length; //7
s += '๋
ธ๋์ :' + divEL.childNodes.length;
alert(s);
//children : ์์์ฃผ์ฐ ใ
๊ทธ๋ง
s+= '๋
ธ๋์ :' + divEL.children.length; //3
console.log(divEL.children);
alert(s);
}
function fun2() {
const divEL = document.querySelector('#subjectLayout');
//๋
ธ๋ ์ถ๊ฐ
let node = document.createElement('p'); // ํ๊ทธ
node.setAttribute('title','์๋ธ๋ฆฟ...'); // ์์ฑ ์ถ๊ฐ
node.onclick= function(e){alert(this.firstChild.nodeValue)};
let textNode = document.createTextNode('์๋ธ๋ฆฟ'); // ํ
์คํธ ๋
ธ๋
node.appendChild(textNode);
divEL.appendChild(node);
}
function fun3() {
const divEL = document.querySelector('#subjectLayout');
//๋
ธ๋ ์ถ๊ฐ ์
let node = document.createElement('p'); // ํ๊ทธ
node.setAttribute('title','์์...'); // ์์ฑ ์ถ๊ฐ
node.onclick= function(e){alert(this.firstChild.nodeValue)};
let textNode = document.createTextNode('์'); // ํ
์คํธ ๋
ธ๋
node.appendChild(textNode);
// insertBefor -> ๋ฌด์์? ์ด๋์? ์ถ๊ฐํ ์งใ
ฃ
divEL.insertBefore(node,divEL.children[0]); // ๊ฐ์ฅ ์์
}
function fun4() {
const divEL=document.querySelector('#subjectLayout');
//๊ฐ์ฅ ์ ๋
ธ๋ ์ญ์
if(divEL.children.length){
divEL.removeChild(divEL.children[0]);
}
}
function fun5() {
const divEL = document.querySelector('#subjectLayout');
// ์คํ์ผ ๋ณ๊ฒฝ
divEL.style.border='none';
}
</script>
</body>
</html>
'๐ป > Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(52) [JavaScript] 8์ผ JavaScript ์ ๊ท ํํ์ (1) | 2024.04.29 |
---|---|
(52) [JavaScript] 8์ผ JavaScript Form (0) | 2024.04.29 |
(51) [JavaScript] 7์ผ JavaScript ๊ฐ์ฒด - ์ด๋ฒคํธ2 (1) | 2024.04.28 |
(50) [JavaScript] 6์ผ JavaScript ๊ฐ์ฒด - ์ด๋ฒคํธ (1) | 2024.04.28 |
(50) [JavaScript] 6์ผ JavaScript ๊ฐ์ฒด - DOM (1) | 2024.04.28 |