DOM(Document Object Model)은 HTML 문서를 브라우저가 객체 형태로 변환한 것이다.
DOM 객체의 생성 메소드는 자바스크립트로 HTML 요소를 동적으로 생성할 때 사용된다.
즉, HTML에 미리 작성하지 않고 자바스크립트 실행 중에 태그를 만들어 화면에 추가할 수 있다.
| 메소드 이름 | 설명 |
|---|---|
| createElement('태그명') | 지정한 태그 요소를 생성 |
| appendChild() | 생성한 요소를 부모 요소의 자식으로 추가 |
| innerHTML = '텍스트' | 요소 안에 내용 추가 |
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<script>
// h2 태그 생성
let n = document.createElement('h2');
// body에 h2 태그를 자식 요소로 추가
document.body.appendChild(n);
// h2 태그 안에 텍스트 삽입
n.innerHTML = "엘리먼트";
</script>
</body>
</html>
HTML 태그는 여러 개의 속성(attribute)을 가진다.
DOM 속성 메소드를 사용하면 태그의 속성을 읽거나 변경할 수 있다.
| 메소드 이름 | 설명 |
|---|---|
| getAttribute('속성명') | 해당 태그의 속성 값 가져오기 |
| setAttribute('속성명', 값) | 해당 태그의 속성 값 변경 |
getAttribute() → 현재 속성 값 확인setAttribute() → 속성 추가 또는 수정HTML 요소 내부의 텍스트를 다루는 방법은 여러 가지가 있으며,
각 속성마다 태그를 해석하는 방식이 다르다.
| 속성 | 설명 |
|---|---|
| innerHTML | 태그는 태그로 인식, 텍스트는 텍스트로 인식 |
| innerText | 태그를 문자로 인식, 화면에 보이는 텍스트만 처리 |
| textContent | 태그를 문자로 인식, script/style 포함 모든 텍스트 처리 |
<b>글자</b> 는 굵은 글자로 출력됨 <b>글자</b> 그대로 문자로 출력 이벤트(Event)는 사용자의 동작(클릭, 키 입력 등)에 반응하여 실행되는 코드의 시점을 의미한다.
문서 객체의 이벤트 속성에 직접 함수를 연결하는 방식이다.
문서객체.on이벤트타입 = 이벤트핸들러;
예시
document.onclick = function() {
console.log("클릭됨");
};
addEventListener를 사용하여 이벤트를 등록하는 방식이다.
현재 가장 많이 사용하는 방식이다.
문서객체.addEventListener('이벤트타입', 콜백함수);
예시
document.addEventListener('click', function() {
console.log("클릭 이벤트 발생");
});
등록된 이벤트를 제거할 때 사용한다.
문서객체.removeEventListener('이벤트타입', 콜백함수);
HTML 태그 안에서 직접 이벤트를 작성하는 방식이다.
<button onclick="alert('클릭')">버튼</button>
이벤트가 발생하면 브라우저는 이벤트 객체(event object) 를 자동으로 생성한다.
이 객체를 통해 이벤트에 대한 상세 정보를 알 수 있다.
stopPropagation()
→ 이벤트 버블링(상위 요소 전파)과 캡처링(하위 요소 전파) 방지
preventDefault()
→ 태그가 가진 기본 동작 제거
(예: 링크 클릭 시 페이지 이동 방지)
pageX, pageY
→ 문서(body) 기준 마우스 좌표
offsetX, offsetY
→ 이벤트 대상 요소 기준 마우스 좌표
keyCode
→ 키보드 입력 시 해당 키의 유니코드 값 반환








- 고전 이벤트 방식

- 이벤트 메서드

- 이벤트 리스너 함수등록

텍스트 클릭 후






각 버튼 클릭 후
