DOM 노드 수정하기: HTML 요소와 속성 변경 방법 및 사용 예제

DOM 노드 수정하기: HTML 요소와 속성 변경 방법 및 사용 예제

웹 개발에서 DOM(Document Object Model)은 웹 페이지의 구조와 내용을 조작하는 핵심적인 역할을 합니다. DOM을 이해하고 활용하면 웹 페이지의 동적인 특성을 구현할 수 있으며 사용자와 상호작용하는 다양한 기능을 제공할 수 있습니다. 이번 글에서는 HTML 요소의 내용과 속성을 변경하는 방법에 대해 알아보겠습니다.

1. 요소 변경: innerHTML, innerText, textContent 속성 사용

innerHTML, innerText, 그리고 textContent는 DOM 노드의 내용을 수정할 때 사용되는 속성입니다.

메서드/속성설명
innerHTMLHTML 구조를 포함한 문자열로 요소의 내용을 변경합니다.
innerText순수한 텍스트 문자열로 요소의 내용을 변경하며, CSS 스타일에 따른 가시성을 고려합니다.
textContent순수한 텍스트 문자열로 요소의 내용을 변경하며, CSS 스타일에 따른 가시성을 고려하지 않습니다.

예제 1: innerHTML, innerText, textContent 사용하기

1. 예제 코드

<!DOCTYPE html>
<html>
<head>
     <title>DOM 노드 수정하기</title>
</head>
<body>
     <p id="innerHTML"></p>
     <p id="innerText"></p>
     <p id="textContent"></p>
     
     <script>
          window.onload = function() {
               document.getElementById("innerHTML").innerHTML = "<strong>새로운</strong> 내용입니다.";
               document.getElementById("innerText").innerText = "<strong>새로운</strong> 내용입니다.";
               document.getElementById("textContent").textContent = "<strong>새로운</strong> 내용입니다.";
          };
     </script>
</body>
</html>


이 예제에서는 innerHTML, innerText, 그리고 textContent를 사용하여 각 문단의 내용을 수정합니다. 결과로 각 메서드/속성에 따라 텍스트가 다르게 표시됩니다.

2. 실행 결과 화면

innerHTML, innerText, textContent 사용하기 예제 코드 실행 결과 화면입니다.

예제 2: innerText와 textContent의 차이 보여주기

1. 예제 코드

<!DOCTYPE html>
<html>
<head>
     <title>DOM 노드 수정하기</title>
     <style>
          .hidden {
               display: none;
          }
     </style>
</head>
<body>
     <p id="sample">
          이것은 <span class="hidden">숨겨진</span> 텍스트입니다.
     </p>
     <p id="innerText"></p>
     <p id="textContent"></p>
     
     <script>
          window.onload = function() {
               var sample = document.getElementById("sample");
               document.getElementById("innerText").innerText = "innerText 결과: " + sample.innerText;
               document.getElementById("textContent").textContent = "textContent 결과: " + sample.textContent;
          };
     </script>
</body>
</html>


이 예제에서는 innerText와 textContent의 차이를 보여주기 위해 CSS를 사용하여 문단의 일부 내용을 숨깁니다. innerText는 CSS 스타일에 따른 가시성을 고려하기 때문에 숨겨진 요소를 포함하지 않습니다. 반면 textContent는 가시성과 관계없이 모든 텍스트를 가져옵니다.

2. 실행 결과 화면

innerText와 textContent의 차이 보여주기 사용 예제 실행 결과 화면입니다.

2. 속성 변경: setAttribute, removeAttribute 메서드 사용

setAttribute와 removeAttribute는 HTML 요소의 속성을 변경하거나 제거하는 데 사용됩니다.

메서드설명
setAttribute지정한 속성을 추가하거나 변경합니다.
removeAttribute지정한 속성을 제거합니다.

1. 예제 코드

<!DOCTYPE html>
<html>
<head>
     <title>DOM 노드 수정하기</title>
</head>
<body>
     <a id="myLink" href="https://www.google.com" title="구글">구글</a>

     <script>
          window.onload = function() {
               // 속성값 변경
               document.getElementById("myLink").setAttribute("href", "https://blueshare.tistory.com");
               document.getElementById("myLink").setAttribute("target", "_blank");
               document.getElementById("myLink").innerText = "BlueShare 블로그"

               // 속성값 삭제
               document.getElementById("myLink").removeAttribute("title");;
          };
     </script>
</body>
</html>

2. 실행 결과 화면

setAttribute, removeAttribute 메서드 사용 예제 코드 실행 결과 화면입니다.

함께 보면 좋은 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤