Document Object Model
- 문서객체 모델
- 프로그램이나 스크립트가 웹 페이지 내의 구성 요소들에 접근하여
내용이나 스타일 등을 변경할 수 있게 해 주는 인터페이스
- 모든 엘리먼트(html, head, body, h1, div, …)는 객체다.
Document 객체의 주요 메소드
- getElementById(id) : 지정된 id에 해당하는 element 객체를 반환한다
- querySelector(“css 선택자”) : 지정된 선택자로 검색된 첫번째 element 객체를 반환한다
- querySelectorAll(“css 선택자”) : 지정된 선택자로 검색된 모든 element 객체를 HTMLCollection에 담아 반환한다
Element 객체의 주요 프로퍼티
- textContent : Element의 텍스트 컨텐츠를 조회/변경할 수 있다
- innerHTML : Element의 html 컨텐츠를 조회/변경할 수 있다
- value : input, select, textarea Element의 값을 조회/변경할 수 있다
- disabled : input, select, textarea, button Element의 비활성화 여부를 조회/변경할 수 있다
- checked : checkedbox, radio element의 비활성화 여부를 조회/변경할 수 있다
Element 객체의 주요 메소드
- appendChild(Element) : 지정된 엘리먼트를 맨 마지막 자식 노드로 추가한다
- removeChild(Element) : 지정된 자식 엘리먼트를 삭제한다
- getAttribute(“속성명”) : 해당 엘리먼트에서 지정된 속석명에 해당하는 속성값을 반환한다 (name)
- setAttribute(“속성명”, “속성값”) : 해당 엘리먼트에서 속성을 변경/추가한다 (name, value)
간단한 사용 예시
<div class="row mb-3">
<div class="col">
<h3>텍스트 컨텐츠 조회 및 변경</h3>
<p class="border p-3 mb-3" id="text-content-1">첫번째 텍스트 내용입니다.</p>
<p class="border p-3 mb-3" id="text-content-2">두번째 텍스트 내용입니다.</p>
<div>
<button class="btn btn-primary" onclick="getTextContent()">조회</button>
<button class="btn btn-warning" onclick="changeTextContent()">변경</button>
</div>
</div>
</div>
<script type="text/javascript">
function getTextContent() {
// HTML Document 객체에서 id가 "text-content-1"인 엘리먼트(태그를 표현하는 객체) 객체를 찾아서 변수 el에 대입한다.
let el = document.getElementById("text-content-1");
console.log("조회된 엘리먼트 -> ", el); // <p class="border p-3 mb-3" id="text-content-1">첫번째 텍스트 내용입니다.</p>
// el 변수에 저장된 엘리먼트 객체의 textContent 프로퍼티가 가지고 있는 텍스트 컨텐츠를 변수 content에 대입한다.
let content = el.textContent;
console.log("조회된 엘리먼트의 텍스트 컨텐츠 -> ", content) // 첫번째 텍스트 내용입니다.
}
// 변경 버튼을 클릭하면 선택한 text-content-2의 textContent를 저녁 먹고 공부하자! 로 변경한다
function changeTextContent() {
let el = document.querySelector("#text-content-2");
el.textContent = "저녁 먹고 공부하자!";
}
</script>