javascript
[javascript] 00. DOM
쿨키드
2022. 7. 31. 14:27
DOM
문서 객체 모델(DOM, Document Object Model)은 XML이나 HTML 문서에 접근하기 위한 일종의 인터페이스입니다.
이 객체 모델은 문서 내의 모든 요소를 정의하고, 각각의 요소에 접근하는 방법을 제공
📌자바스크립트는 이러한 객체 모델을 이용하여 다음과 같은 작업을 할 수 있다📌 1. 자바스크립트는 새로운 HTML 요소나 속성을 추가할 수 있다. 2. 자바스크립트는 존재하는 HTML 요소나 속성을 제거할 수 있다. 3. 자바스크립트는 HTML 문서의 모든 HTML 요소를 변경할 수 있다. 4. 자바스크립트는 HTML 문서의 모든 HTML 속성을 변경할 수 있다. 5. 자바스크립트는 HTML 문서의 모든 CSS 스타일을 변경할 수 있다. 6. 자바스크립트는 HTML 문서에 새로운 HTML 이벤트를 추가할 수 있다. 7. 자바스크립트는 HTML 문서의 모든 HTML 이벤트에 반응할 수 있다. |
<!DOCTYPE html>
<html lang="ko">
<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>2022.07.14. DOM 01</title>
<style>
* {
color: #4444;
text-decoration: none;
}
.gnb>ul>li.on a {
color: #f00;
}
</style>
</head>
<body>
<nav class="gnb">
<ul>
<li class="on"><a href="">menu01</a></li>
<li><a href="">menu02</a></li>
<li><a href="">menu03</a></li>
<li><a href="">menu04</a></li>
<li><a href="">menu05</a></li>
</ul>
</nav>
<section class="sum">
<ul>
<li>mennu01</li>
<li>mennu02</li>
<li>mennu03</li>
<li>mennu04</li>
</ul>
<div class="content">
<div>content01</div>
<div>content02</div>
<div>content03</div>
<div>content04</div>
</div>
</section>
<script>
//$(function(){})
window.addEventListener('DOMContentLoaded', () => {
const UL = document.querySelector('.gnb>ul')
const LI = document.querySelectorAll('.gnb>ul>li');
console.log(UL, UL.children, [...UL.children], LI) //...=spread연산자. 내용을 늘여둔다.
LI.forEach(function (el, idx) {
el.addEventListener('click', function (event) {
event.preventDefault();
LI.forEach(function (el) {
el.classList.remove('on')
})
el.classList.add('on');
console.log(event.target, event.currentTarget, this)
})
});
const TUL = document.querySelector('.sum ul');
const TLI = document.querySelectorAll('.sum ul li');
const TCONTENT = document.querySelectorAll('.content>div');
TLI.forEach((elm, idx) => {
elm.addEventListener('click', () => {
TLI.forEach(el => el.classList.remove('on'));
elm.classList.add('on');
TCONTENT.forEach(el => el.classList.remove('on'))
TCONTENT[idx].classList.add('on');
})
})
});
</script>
</body>
</html>