HTMLCollection을 반환하는 함수지만, 연속으로 혹은 다른 getElementsByClassName()과 같이 사용할 수 없다.
= ex ] ========================================================================
맞는 예시 : var tag = document.getElementsByTagName( 'div' );
틀린 예시 : var tag = document.getElementsByTagName( 'div' )[0].getElementsByClassName( 'class' );
var tag = document.getElementsByTagName( 'div' )[0].getElementsByTagName( 'p' );
============================================================================
만약 틀린 예시 구문처럼 사용하고 싶을 경우에는 querySelectorAll()를 사용한다.
= ex ] ========================================================================
var tag = document.querySelectorAll( 'div' )[0].getElementsByClassName( 'class' );
var tag = document.querySelectorAll( 'div' )[0].getElementsByTagName( 'p' );
( 잘못된 사용 var tag = document.querySelectorAll( 'div' )[0].querySelectorAll( 'p' ); => p를 전체에서 다시 찾는다. div 하위에서 찾지 않는다.)
============================================================================
특정 태그와 특정 속성을 사용하여 검색하고 싶은 경우
= ex ] ========================================================================
예 ) Block 태그와 Lego 속성
var tag = document.querySelectorAll( 'Block[Lego]' );
( 값을 아는 경우 var tag = document.querySelectorAll( 'Block[Lego = "3"]' ); )
============================================================================
차이점은 getElementsByTagName()은 동적인 노드를, querySelectorAll()는 정적인 노드를 반환한다.
출처 && 테스트 :
Document.getElementsByTagName() - Web API | MDN
다음 예시에서, getElementsByTagName() 는 특정 부모 엘리먼트에서 시작해 그 부모 엘리먼트의 DOM 을 거쳐 위에서 아래로 재귀 탐색을하고, 태그 name 파라미터에 일치하는 모든 자손 엘리먼트의
developer.mozilla.org
Document.querySelectorAll() - Web API | MDN
Document 메소드 querySelectorAll() 는 지정된 셀렉터 그룹에 일치하는 다큐먼트의 엘리먼트 리스트를 나타내는 정적(살아 있지 않은) NodeList 를 반환합니다.
developer.mozilla.org
'코-딩 > Javascript' 카테고리의 다른 글
Javascript - blob & UTF-8 (0) | 2022.04.14 |
---|---|
JavaScript - image src (0) | 2022.03.31 |
Javascript - DOMParser, fetch (0) | 2022.03.29 |
Array.prototype.splice() (0) | 2022.01.12 |
Array.prototype.find() (0) | 2022.01.12 |