자바스크립트 - DOM 메서드
안녕하세요, 야심찬 프로그래머 여러분! 오늘 우리는 자바스크립트와 문서 객체 모델(DOM)의 흥미로운 세상으로 뛰어들어 볼 거예요. 여러분의 친절한 이웃 컴퓨터 선생님으로서, 저는 많은 예제와 설명을 통해 이 여정을 안내해드릴 거예요. 그러니 마음에 드는 음료를 한 잔 가져와서 편안하게 앉아, 우리의 모험을 시작해 보세요!
DOM이란?
메서드에 들어가기 전에 DOM이 무엇인지 간단히 이해해보겠습니다. 웹페이지를 가족 나무로 상상해 보세요. DOM은 그 가족 나무처럼, HTML 문서의 구조를 나타냅니다. DOM을 통해 자바스크립트는 웹페이지의 내용, 구조, 스타일을 상호작용하고 조작할 수 있습니다.
이제 강력한 DOM 메서드를 탐구해 보겠습니다. 여러분이 자바스크립트 마법사가 되도록 도와드리겠습니다!
JavaScript document.getElementById() 메서드
getElementById()
메서드는 HTML 문서에서 특정 ID를 가진 요소를 찾는 보물 사냥꾼과 같습니다. 그것을 실제로 보겠습니다:
<div id="myAwesomeDiv">안녕하세요, 멋진 div입니다!</div>
<script>
let myDiv = document.getElementById("myAwesomeDiv");
console.log(myDiv.innerHTML);
</script>
이 예제에서 우리는 자바스크립트에게 "ID가 'myAwesomeDiv'인 요소를 찾아서 'myDiv' 변수에 저장해"라고 말하고 있습니다. 그런 다음, 그 내용을 콘솔에 출력합니다.
이 코드를 실행하면 콘솔에 "안녕하세요, 멋진 div입니다!"라는 텍스트를 볼 수 있습니다. 마법 같지만, 여러분이 그 작동 방식을 이해하기 때문에 더 좋습니다!
실용적인 예제: 내용 변경
이제 더 상호작용적인 것으로 만들어 보겠습니다:
<h1 id="greeting">안녕하세요, 세상!</h1>
<button onclick="changeGreeting()">인사 변경</button>
<script>
function changeGreeting() {
let greetingElement = document.getElementById("greeting");
greetingElement.innerHTML = "안녕하세요, 자바스크립트 닌자!";
}
</script>
여기서 우리는 버튼을 클릭할 때 h1 요소의 텍스트를 변경합니다. 몇 줄의 코드로 웹페이지에 인격을 입히는 것 같아요!
JavaScript document.addEventListener() 메서드
이제 addEventListener()
에 대해 이야기해 보겠습니다. 이 메서드는 요소에 대한 특정 이벤트를 감시하고, 그 이벤트가 발생하면 무언가를 수행합니다.
<button id="myButton">나를 클릭해!</button>
<script>
let button = document.getElementById("myButton");
button.addEventListener("click", function() {
alert("버튼 클릭! 멋지ає요!");
});
</script>
이 예제에서 우리는 버튼에게 "누군가가 당신을 클릭할 때 이 메시지를 보여주다"고 말하고 있습니다. 웹페이지가 사용자의 동작에 응답하도록 가르치는 것 같아요!
실용적인 예제: 다크 모드 토글
간단한 다크 모드 토글을 만들어 보겠습니다:
<button id="darkModeToggle">다크 모드 전환</button>
<script>
let darkModeToggle = document.getElementById("darkModeToggle");
darkModeToggle.addEventListener("click", function() {
document.body.style.backgroundColor = document.body.style.backgroundColor === "black" ? "white" : "black";
document.body.style.color = document.body.style.color === "white" ? "black" : "white";
});
</script>
이 코드는 버튼을 클릭할 때 전체 페이지의 배경색과 텍스트 색상을 전환합니다. 사용자가 웹사이트에 대한 개인적인 전구를 가지는 것 같아요!
JavaScript document.write() 메서드
document.write()
메서드는 HTML 문서로 직접 쓰는 직통线路와 같습니다. 이 메서드를 사용하면 HTML 출력에 직접 내용을 쓸 수 있습니다. 하지만 주의하세요! 페이지가 로드된 후 이 메서드를 사용하면 기존의 모든 콘텐츠를 덮어쓰게 됩니다.
<script>
document.write("<h2>자바스크립트에서 오는 인사!</h2>");
</script>
이렇게 하면 새로운 h2 요소를 페이지에 추가하여 "자바스크립트에서 오는 인사!" 텍스트를 포함합니다. 마법의 펜으로 직접 웹페이지에 쓰는 것 같아요!
실용적인 예제: 동적 콘텐츠 생성
사용자 입력에 따라 목록을 생성하는 간단한 예제를 만들어 보겠습니다:
<input type="number" id="listLength" placeholder="목록 길이 입력">
<button onclick="generateList()">목록 생성</button>
<script>
function generateList() {
let length = document.getElementById("listLength").value;
document.write("<ul>");
for (let i = 1; i <= length; i++) {
document.write("<li>항목 " + i + "</li>");
}
document.write("</ul>");
}
</script>
이 스크립트는 사용자가 입력한 수에 따라 비정렬 목록을 생성합니다. 그러나 이렇게 하면 전체 페이지 콘텐츠를 덮어쓰기 때문에 신중하게 사용하세요!
DOM 메서드 목록
많은 DOM 메서드가 더 탐구할 수 있습니다. 여기 몇 가지 흔히 사용되는 메서드의 표를 제공합니다:
메서드 | 설명 |
---|---|
getElementById() | 지정된 ID를 가진 요소를 반환합니다 |
getElementsByClassName() | 지정된 클래스 이름을 가진 요소 컬렉션을 반환합니다 |
getElementsByTagName() | 지정된 태그 이름을 가진 요소 컬렉션을 반환합니다 |
querySelector() | CSS 선택자와 일치하는 첫 번째 요소를 반환합니다 |
querySelectorAll() | CSS 선택자와 일치하는 모든 요소를 반환합니다 |
createElement() | 새로운 요소 노드를 생성합니다 |
appendChild() | 요소에 새로운 자식 노드를 추가합니다 |
removeChild() | 요소에서 자식 노드를 제거합니다 |
replaceChild() | 요소에서 자식 노드를 다른 노드로 변경합니다 |
setAttribute() | 지정된 속성을 설정하거나 변경합니다 |
이러한 각 메서드는 웹페이지를 조작하는 새로운 가능성을 열어줍니다. 웹 개발에 있어 스위스 아미리 기계처럼 다용도입니다!
결론적으로, DOM 메서드는 웹페이지와 상호작용하고 동적으로 조작하는 데 강력한 도구입니다. 이들은 웹사이트를 상호작용적이고 반응형으로 만드는 비밀 재료입니다. 웹 개발의 여정을 계속하면서, 여러분은 이 메서드들을 자주 사용하게 될 것입니다.
기억하세요, 실습이 완벽을 만듭니다. 이 메서드들을 시도하고, 실험하고, 실수를 두려워하지 마세요. 우리는 그렇게 배우고 성장합니다. 행복한 코딩, 미래의 자바스크립트 닌자 여러분!
Credits: Image by storyset