정의
innerHTML
innerHTML은 이름 그대로 HTML
을 반환한다.
예를 들어 box
라는 div
가 있다고 하자.
<div id="box">
<p>Hi there!</p>
</div>
그럼 innerHTML
을 사용했을 때, 위의 내용 그대도 반환한다. 그래서 텍스트만 반환하는 innerText
, textContent
와 다르다.
innerText
innerText 속성은 그 요소와 그 자손의 랜더링 된 텍스트 콘텐츠를 나타낸다. 즉, 눈에 보이는 텍스트만 반환한다는 것이다.
textContent
textContent 속성은 노드와 그 자손의 텍스트 콘텐츠를 표현한다.
차이
여기까지만 보면 innerText
와 textContent
의 차이가 없어 보인다. 그러나 아주 중요한 차이점이 있다.
textContent
는 <script>
와 <style>
을 비롯한 모든 요소의 텍스트 콘텐츠를 가져온다. 그러나 innerText
는 눈에 보이는 요소만 가져온다.
만약 아래와 같은 HTML
코드가 있다면:
<div id="box">
<style>#source {color: blue}</style>
<p>Hi there!</p>
<span style="display: none">hidden message</span>
</div>
textContent
는 눈에 보이지 않는 값까지 반환하고, innerText
는 눈에 보이는 것만 반환한다.
이러한 차이가 일어나는 것은 innerText
는 HTMLElement
인터페이스 속성이고, textContent
는 Node
인터페이스의 속성이기 때문이다.
참고:
1. https://hianna.tistory.com/483
2. https://developer.mozilla.org/ko/docs/Web/API/Node/textContent#innertext%EC%99%80%EC%9D%98_%EC%B0%A8%EC%9D%B4%EC%A0%90de/textContent
3. https://developer.mozilla.org/ko/docs/Web/API/HTMLElement/innerText#%EC%98%88%EC%A0%9C
'Programming Language > JavaScript' 카테고리의 다른 글
[JavaScript] forEach와 map의 차이 (0) | 2021.12.27 |
---|---|
[JavaScript] 함수 여러 값 return 하기 (0) | 2021.10.11 |
[JavaScript] Js로 숫자 무작위 추첨 (Math.random() 사용법) (0) | 2021.10.09 |
댓글