230803
JavaScript - DOM, Event
생성 일시: 2023년 8월 2일 오후 8:50
- DOM
- Event
DOM
window 제공 함수
- alert
- confirm
- prompt
- open
- parseInt, parseFloat
- setTimeout, clearTimeout
- setInterval, clearInterval
DOM
- XML, HTML 문서의 각 항목을 계층으로 표현하여 생성, 변형, 삭제할 수 있도록 돕는 인터페이스
- DOM은 문서 요소 집합을 트리 형태의 계층 구조로 HTML 표현
- HTML 문서의 요소를 제어하기 위해 지원
- 상단의 document 노드를 통해 접근
문서 접근 방식 이해
- getElementById (string)
- querySelector(css selector)
- querySelectorAll(css selector)
getElementById (string)
JavaScript
var ele = document.getElemendById("a");
HTML
<section>
<h2>테스트</h2>
<div id="a" class ="b">지역</div>
<div class="b">광주</div>
<div name="c">구미</div>
<p name="c">대전</p>
<p class="d">서울</p>
<p class="e">부울경</p>
</section>
querySelector (css selector)
var ele = document.querySelector("#a");
var ele document.getElementById("a");
var ele = document.querySelector(".b");
var ele = document.querySelector("[name='c']");
// 똑같이 특정 Attribute를 가진 요소만 선택할 수 있음
// "[width=...]"
<section>
<h2>테스트</h2>
<div class="b">광주</div>
<div class="b">광주</div>
<div name="c">구미</div>
<p name="c">구미</div>
<p class="d">서울</p>
<p class="e">부울경</p>
</section>
querySelectorAll (css selector)
- querySelector와 사용방식 동일
결과를 배열처럼 사용
var list = document.querySelectorAll("div"); for (var i=0; i<list.length; i++) { console.log(list[i]) }
var ele = document.querySelectorAll("#a");
var ele = document.querySelectorAll("div");
var ele = document.querySelectorAll(".b");
var ele = document.querySelectorAll("[name='c']");
<section>
<h2>테스트</h2>
<div class="b">광주</div>
<div class="b">광주</div>
<div name="c">구미</div>
<p name="c">구미</div>
<p class="d">서울</p>
<p class="e">부울경</p>
</section>
문서 조작 방식 이해
createElement(tagName)
createTextNode(text)
appendChild(node)
removeChild(node)
setAttribute(name, value)
innterHTML
innerTEXT
createElement(string), append(string | node)
// 엘리먼트 생성
var ele = document.createElement("img);
// 추가할 기존 엘리먼트 접근
var parent = document.getElementById("list");
// 엘리먼트 추가
parent.append(ele);
<div id="list"></div>
// 매모리에 생성 (화면에 보이지 않는 상태)
<img>
-----------
<div id="list">
<img>
</div>
setAttribute(name, value)
var ele document.createElement("img");
// 생성된 img 엘리먼트에 속성 추가하기
ele.setAttribute("src", "./images/cake.jpg");
ele.setAttribute("width", 200);
ele.setAttribute("height", 150);
ele.src="./images/cake.jpg";
ele.width=200;
ele.height=150;
<img>
// 이게 이렇게 됨
<img src="./images/cake.jpg" width="200" height="150">
속성 설정 시 주의점 - 사용자 정의 속성
var ele = document.createElement("img");
ele.setAttribute("src", "./images/cake.jpg");
ele.setAttribute("width", 200);
ele.setAttribute("height", 150);
ele.setATtribute("msg", "test");
<img src = "./images/cake.jpg"
width "200"
height="150"
msg="test"
>
ele.src = "./images/cake.jpg";
ele.width=200;
ele.height=150;
ele.msg="test"
<img src="./imgaes/cake.jpg"
width="200"
height="150"
>
innerHTML을 이용한 요소 내용 변경
조작할 엘리먼트 접근
var list = document.getElementById("list");
// 엘리먼트의 innerHTML을 접근
list.innerHTML
<div id="list">
</div>
// 처리할 작업 진행
list.innerHTML = "<img src='./images/cake.jpg"
width='200' height='150' />";
<div id="list"
<img src="./images/cake.jpg"
width='200' height='150 />
</div>