본문 바로가기
코-딩/Javascript

getElementsByTagName() / querySelectorAll()

by ㅋㅂㅋ 2022. 1. 19.

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