원본: https://www.educba.com/javascript-getelementbyid/
자바스크립트의 getElementById() 메소드는 특정 id 속성을 가진 요소를 검색하고 그 요소를 리턴합니다. 이는 HTML DOM 관련 스크립트를 짤 때 가장 유용하고 일반적으로 쓰이는 메소드입니다. 주로 document의 일부 요소를 찾거나 조작할 때 많이 사용합니다.
이 메소드는 특정 id로 document를 검색하는데 요소를 찾지 못한 경우 null을 리턴합니다. id는 원래 페이지 내에서 고유한 값 이어야 하기 때문에 여러 요소가 같은 id로 지정된 경우 getElementById() 메소드는 첫 번째로 찾아낸 요소만을 리턴합니다.
Table of Contents
getElementById 문법
document.getElementById(elementID1);
위 구문의 매개변수인 elementID1은 필수 입력 값 이고, 이는 검색하려는 요소의 id 속성 값 입니다. 자료형은 문자열 타입만 허용합니다.
getElementById 작동 방법
이 메소드는 전달 받은 매개변수를 기반으로 작동하며 document에서 해당 id를 가진 요소를 찾고 그 요소를 리턴합니다. 이는 document에서 정보를 가져오거나 조작하는 작업에 유용하게 쓸 수 있습니다.
Google Chrome, Internet Explorer, Mozilla Firefox, Safari 및 Opera 같은 브라우저와 최신 브라우저 모두에서 작동합니다.
이는 매개변수로 받은 특정 id에 해당하는 요소 객체를 리턴하지만 검색에 실패한 경우 null을 리턴합니다.
예제 1
첫 번째 예제로 버튼을 누르면 화면의 문자열을 변경하는 방법을 알아보겠습니다:
<!DOCTYPE html>
<html>
<body>
<p id="demo1">아래 버튼을 눌러 문장을 바꿔보세요.</p>
<button onclick="myFunction1()">버튼</button>
<script>
function myFunction1() {
document.getElementById("demo1").innerHTML = "안녕하세요!";
}
</script>
</body>
</html>
이 HTML 코드를 실행하면 다음과 같은 화면을 볼 수 있습니다:
여기서 버튼을 누르면 다음과 같이 문장이 변경됩니다:
위의 HTML 코드의 <body> 요소의 첫 번째 요소로 <p>를 넣었고 이 요소의 id를 “demo1″로 지정했습니다. 그 다음 <button> 요소를 넣어 클릭하면 myFunction1() 함수를 호출하게 작성했습니다.
그 다음 스크립트 부분에서 myFunction1() 함수를 정의했고 getElementById() 메소드의 매개변수로 “demo1″을 넣어 document의 <p> 요소를 찾았습니다. 찾은 요소의 innerHTML 속성에 다른 문자열을 넣어 사용자가 버튼을 클릭하면 화면의 문자열이 변경되도록 했습니다.
예제 2
다음은 버튼을 눌렀을 때 화면의 글자 색을 바꾸는 예제입니다:
<!DOCTYPE html>
<html>
<body>
<p id="demo1">버튼을 클릭해 글자 색을 바꿔보세요.</p>
<button onclick="myFunction1()">버튼</button>
<script>
function myFunction1() {
const x1 = document.getElementById("demo1");
x1.style.color = "red";
}
</script>
</body>
</html>
위의 예제를 실행하면 다음과 같은 화면이 나타납니다:
화면에서 버튼을 누르면 다음과 같이 문자열의 색이 변하는 결과를 볼 수 있습니다:
앞에서 설명한 예제와 비슷하게 이번에도 <p> 요소를 만들고 버튼을 클릭하면 자바스크립트가 실행되는 예제입니다.
<p> 요소의 id로 “demo1″을 넣고 버튼을 클릭하면 id가 “demo1″인 요소를 document에서 찾아 글자 색을 변경했습니다.
예제 3
이번에는 기존 요소의 내용을 가져와 document에 그대로 추가하는 예제를 알아보겠습니다:
<!DOCTYPE html>
<html>
<body>
<p id="element1">GetElementById1</p>
<hr>
<p>document에 요소 내용 복사</p>
<script>
const s1 = document.getElementById("element1").innerHTML;
document.write(s1);
</script>
<hr>
</body>
</html>
위의 코드를 실행하면 다음과 같은 결과를 볼 수 있습니다:
이번에는 id가 “element1″인 <p> 요소를 찾아서 해당 요소의 내용을 가져온 다음 document.write() 메소드를 사용하여 document에 문장을 추가했습니다.
예제 4
<!DOCTYPE html>
<html>
<body>
<p id="element1">GetElementById1</p>
<hr>
<p>"GetElementById1" 였던 문자열을<br>"shinyks.com"으로 변경하고 DOM에 추가</p>
<hr>
<script>
var s = document.getElementById("element1").innerHTML = "shinyks.com";
document.write(s);
</script>
<hr>
</body>
</html>
코드를 실행하면 브라우저에 다음과 같은 문장이 나타납니다:
이번 예제는 이전 예제와 비슷합니다. 한 가지 다른 점은 getElementById() 메소드로 찾아낸 요소의 내용을 다른 문장으로 바꾸고 이를 document에 추가하였습니다.
getElementById 정리
document에서 특정 id를 가진 요소를 찾기 위해서는 getElementById() 메소드를 사용할 수 있습니다.
이 메소드의 개념을 이해하기위해 문법 구문을 알아봤고, 네 가지 예제를 통해 DOM에서 특정 요소를 검색하는 방법을 살펴봤습니다.