Document.getElementById()
id
속성의 값은 HTML에서 고유하고 유일해야 하기 때문에 이 함수를 사용해서 요소를 빠르게 찾을 때 유용합니다.
구문
매개변수
id |
찾으려는 요소의 id 속성의 값입니다. 이 값은 대소문자를 구분하는 문자열입니다. |
---|
반환 값
HTML에서 id
속성의 값은 고유하고 유일해야 하지만,
동일한 id
속성의 값을 두 개 이상 가진 요소가 존재하면 DOM 트리 순서로 첫 번째 요소 객체만 반환합니다. 에러는 발생하지 않습니다.
예제
환영합니다. 반갑습니다!
주의할 점
getElementById()
함수를 사용할 때에는 몇 가지 주의할 점이 있습니다.
찾으려는 요소가 없을 때 에러 발생 예방
getElementById()
함수로 찾으려는 요소가 없으면 null
을 반환합니다.
다음과 같은 예제 상황에서는 에러를 발생시킵니다.
이 예제에서 변수 btn4
는 null
이 됩니다.
document.getElementById("btn-4")
로 일치하는 요소를 찾지만, 일치하는 요소가 없기 때문에 null
을 반환하기 때문입니다.
버튼을 클릭할 때 발생하는 이벤트를 수신하기 위해서 이벤트 수신 함수인 addEventListener()
는 이벤트를 지원하는 객체(예를 들어 요소 객체나 Document
, window
객체 등)를 대상으로 하는데, null
은 이벤트를 지원하는 객체가 아니기 때문에 TypeError를 발생시킵니다.
이러한 상황은 매우 많을 수 있습니다.
예제의 경우는 HTML 문서 내에서 인라인으로 HTML 요소와 자바스크립트를 한 눈에 파악할 수 있게 작성했지만, 자바스크립트를 파일로 분리해서 작성할 경우가 해당할 수 있습니다. 개발자가 한 눈에 쉽게 파악할 수 없기 때문입니다.
이러한 에러를 발생시킬 수 있는 상황을 대비해서 다음과 같이 코드를 작성하는 것이 에러 예방에 도움이 됩니다.
이 예제에서는 변수 btn4
가 null
인지를 if()
문으로 평가해서 true
이면 코드를 실행하고, false
이면 콘솔에 경고문구를 출력하게 하였습니다.
if()
문 대신 try..catch
문을 사용해도 동일합니다.
찾으려는 요소의 id
속성의 값은 대소문자 구분
getElementById(id)
함수의 매개변수 id
는 대소문자를 구분하는 문자열입니다.
getElementById()
는 오직 document
객체의 메서드
getElementById()
는 오직 document
객체의 메서드입니다. parentNode
객체나 parentElement
객체 등 부모 요소 객체에 사용할 수 없습니다.
명세서
명세서 사양 | |
---|---|
getElementById()
|
DOM Standard #ref-for-dom-nonelementparentnode-getelementbyid② |
브라우저 호환성
메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
getElementById()
|
1 | 12 | 1 | 1 |