[ JavaSript ] 자바스크립트 기본 문법 | 노드 종류 API(nodeType, nodeName)

2021. 2. 8. 09:20·Archive/Develop
728x90
반응형

이미지 출처 :    https://commons.wikimedia.org/wiki/File:JavaScript-logo.png

 

 

 

 

 

 

해당 포스팅은 생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅임을 미리 알립니다.

 

 

 


 

 

자바스크립트 기본 문법  ::  노드 종류 API

 

 

 

저번 포스팅에서는 Node 객체가 무엇인지,

노드 객체에서 관계와 관련있는 API는 어떤 것이 있는지 알아봤었습니다.

 

 

이번 포스팅은 Node 종류 API 를 알아보도록 하겠습니다.

 

 

 

노드 작업을 하게 되면 현재 선택된 노드가 어떤 타입인지를 판단해야 하는 경우가 있습니다.

 

이런 경우에 사용할 수 있는 API가 nodeType, nodeName입니다.

 

 

 

 

  • Node.nodeType
    node의 타입을 의미합니다.
  • Node.nodeName
    node의 이름 (태그명을 의미합니다.)

 

 

Node Type

 

 

노드의 종류에 따라서 정해진 상수가 존재합니다.

 

아래는 모든 노드의 종류와 종류에 따른 값을 출력하는 예제입니다.

 

 

 

for(var name in Node){
   console.log(name, Node[name]);
}

 

 

실행 결과는 아래 사진과 같습니다.

 

 

 

 

 

 

`아래 예제는 노드 종류 API를 이용해서 노드를 처리하는 예제입니다.

 

함수가 자기 자신을 호출하는 것을 재귀함수라고 하는데,

 

본 예제는 재귀 함수의 예를 보여줍니다.

 

 

 

 

<!DOCTYPE html>
<html>
<body id="start">
<ul>
    <li><a href="./532">html</a></li> 
    <li><a href="./533">css</a></li>
    <li><a href="./534">JavaScript</a>
        <ul>
            <li><a href="./535">JavaScript Core</a></li>
            <li><a href="./536">DOM</a></li>
            <li><a href="./537">BOM</a></li>
        </ul>
    </li>
</ul>
<script>
function traverse(target, callback){
    if(target.nodeType === 1){
        //if(target.nodeName === 'A')
        callback(target);
        var c = target.childNodes;
        for(var i=0; i<c.length; i++){
            traverse(c[i], callback);       
        }   
    }
}
traverse(document.getElementById('start'), function(elem){
    console.log(elem);
});
</script>
</body>
</html>

 

 

 

 

위 코드를 실행시키면 아래와 같은 실행결과가 출력됩니다.

 

 

 

 

 

 

 

 

 

만약 17행 부터 시작하는 if 문이 없다면, text가 출력될 겁니다.

 

if문 안의 조건인 target.nodeType === 1 은

 

Element node 일 때 를 의미합니다.

 

따라서 text node 일때는 출력되지 않겠죠.

 

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ JavaScript ] 자바스크립트 기본 문법 | jQuery 노드 변경 API(before,after,prepend,append,remove,empty...)  (0) 2021.02.08
[ JavaScript ] 자바스크립트 기본 문법 | 노드 변경 API(appendChild, createElement, createTextNode, removeChild, replaceChild)  (0) 2021.02.08
[ JavaScript ] 자바스크립트 기본 문법 | Node 객체(childNodes, firstChild, lastChild, nextSibling...)  (0) 2021.02.08
[ JavaScript ] 자바스크립트 기본 문법 | jQuery api 범위 제한 | jQuery find()  (0) 2021.02.08
[ JavaScript ] 자바스크립트 기본 문법 | jQuery 속성 제어 API | attr , prop 차이  (0) 2021.02.07
'Archive/Develop' 카테고리의 다른 글
  • [ JavaScript ] 자바스크립트 기본 문법 | jQuery 노드 변경 API(before,after,prepend,append,remove,empty...)
  • [ JavaScript ] 자바스크립트 기본 문법 | 노드 변경 API(appendChild, createElement, createTextNode, removeChild, replaceChild)
  • [ JavaScript ] 자바스크립트 기본 문법 | Node 객체(childNodes, firstChild, lastChild, nextSibling...)
  • [ JavaScript ] 자바스크립트 기본 문법 | jQuery api 범위 제한 | jQuery find()
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    코드업 기초
    오라클
    Oracle
    Django
    자바스크립트
    Git
    카카오 100일 프로젝트
    백준
    Codeup
    비박스
    파이썬 백준
    자바스크립트 API
    docker
    코드업
    백준 문제풀이
    백준 파이썬
    파이썬
    파이썬 알고리즘
    보안뉴스
    파이썬 기초
    코드업 파이썬 기초 100제
    Python
    자바스크립트 객체
    oracle db
    파이썬 문제
    백준 풀이
    파이썬 기초 문제
    C++
    장고
    javascript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ JavaSript ] 자바스크립트 기본 문법 | 노드 종류 API(nodeType, nodeName)
상단으로

티스토리툴바