현재 노드와 하위의 텍스트 콘텐츠를 조회하거나 설정한다.
textContent
값document
이거나 DocType
이면 null
을 갖는다.CDATA Section
, Comment
, ProcessingInstruction
, Text
이면 노드 내의 텍스트 즉, nodeValue
를 갖는다.Comment
와 ProcessingInstruction
을 제외한 모든 자식 노드의 textContent
를 병합한 결과를 갖는다. 자식이 없는 경우 빈 문자열 값을 갖는다.현재 노드의 textContent
를 설정하면 현재 노드와 모든 하위의 콘텐츠를 주어진 문자열로 이루어진 하나의 텍스트 노드로 대체한다.
Node
의 textContent
프로퍼티와 HTMLElement
의 innerText
의 역할은 유사해 보이지만 다음과 같은 차이가 있다.
textContent
는 <script>
와 <style>
요소를 포함한 모든 요소의 콘텐츠를 조회한다. 그러나 innerText
프로퍼티는 사람이 읽을 수 있는 텍스트만 조회한다.textContent
는 노드의 모든 요소를 조회한다. 그러나 innerText
는 스타일링을 고려하며 숨겨진 요소의 텍스트는 조회되지 않는다. 또한 innerText
는 CSS
고려로 인해 innerText
로 값을 조회하면 최신 계산값을 반영하기 위해서 리플로우(Reflow)가 발생한다.Element
객체의 innerHTML
은 태그를 포함한 값을 조회한다. 요소의 텍스트만을 조회하고자 한다면 textContent
가 성능이 더 좋다. 문자열로 태그를 설정하면 요소로 변환된다는 점에서 편할 수 있겠지만 XSS
공격의 위험을 가지고 있다.
element.textContent
분류 | 값 | 설명 |
---|---|---|
writable | yes |