티스토리 뷰

JavaScript

JavaScript - DOM 접근하기

안론머스크 2022. 5. 8. 15:28
728x90

요소노드 생성/삭제/이동, 자식 및 부모 요드로의 접근에 대해 알아보자!

 

1. 노드 여행하기

  • 다양한 방식으로 자식 노드, 부모 노드, 형제 노드 등에 접근할 수 있다.
const myTag = document.querySelector('.content');
  • myTag라는 변수에 content 클래스 명을 가진 요소를 할당하고 예시를 보자

 

1.1 자식 요소 노드 접근

myTag.children // 자식 요소에 접근
myTag.children[1] // 두 번째 자식 요소에 접근
myTag.firstElementChild // 첫 번째 자식 요소에 접근
myTag.lastElementChild // 마지막 자식 요소에 접근

 

1.2 부모 요소 노드 접근

myTag.parentElement // 부모 요소에 접근

 

1.3 형제 요소 노드 접근

myTag.previousElementSibling // 이전 형제 요소에 접근
myTag.nextElementSibling // 다음 형제 요소에 접근

* sibling는 형제자매의 뜻을 지니고 있다.

 

2. 요소 노드 주요 property

2.1 innerHTML

  • innerHTML은 태그를 포함한 모든 것을 담고 있는데 주로 수정할 때 사용되는 프로퍼티이다.
  • innerHTML을 사용할 경우 내부의 값을 새로운 값으로 교체하기 때문에 주의하고 사용해야 한다!
myTag.innerHTML += '<li>Hello!</li>'
  • 새로운 값으로 교체하기 때문에 += 연산자를 통해서 새로운 값을 추가해 줄 수 있는 방법이 있다.

 

2.2 outerHTML

  • 해당 요소를 포함한 전체 HTML 코드를 문자열로 리턴해준다. innerHTML과 마찬가지로 요소 자체가 교체되는 위험이 존재하기 때문에 주의하여 사용해야 한다.

 

2.3 textContent

  • innerHTML과 유사하지만 HTML코드를 제외한 문자열 즉 텍스트만 리턴해준다. 텍스트만 삽입하고 싶을 경우 사용해줘라!

 

3. 요소 노드 만들기 'createElement'

const first = document.createElement('li');
first.textContent = '요소생성';
  • createElement를 통하여 요소를 생성할 수 있다. 위의 예시에서 li태그를 생성하였다. 
  • textContent를 사용하여 방금 만들었던 li태그에 '요소생성'이라는 텍스트를 넣었다.
  • 이렇게 만들고 어딘가 넣어줘야겠죠?

 

3.1 요소 추가 prepend, append, after, before

myTag.prepend(first) // myTag에 첫 번째 자식 요소로 추가
myTag.append(first) // myTag에 마지막 자식 요소로 추가
  • prepand와 append는 부모태그를 이용하여 해당 요소를 자식 요소로 추가하는 방법이다.
  • before과 after는 호출한 메소드의 앞/뒤에 형제 노드로 추가하는 방법이다.

 

3.2 요소 삭제 remove

myTag.remove() // myTag의 모든 내부요소들이 삭제된다.
myTag.children[2].remove() // myTag의 인덱스 2번째인 자식 요소가 삭제된다.

* 요소를 삭제할 경우 delete가 아닌 remove를 사용한다!

 

3.3 요소 이동

  • 요소를 추가하는 방법을 응용하여 이동하는 방법도 알아보자.
myTag2.append(myTag.children[1])
  • appned 프로퍼티를 사용하여 myTag의 인덱스 첫 번째 자식 요소를 myTag의 첫 번째 자식 요소로 이동한 예시이다.

 

myTag.children[1].after(myTag2.children[1])
  • after 프로퍼티를 사용하여 myTag 인덱스 1번 자식 요소를 myTag2 인덱스 2번 자식요소 다음으로 위치를 이동시킨 예시이다.
728x90

'JavaScript' 카테고리의 다른 글

JavaScript - Event  (0) 2022.05.08
JavaScript - style property & class control  (0) 2022.05.08
JavaScript - DOM의 기초  (0) 2022.04.29
JavaScript - for (반복문)  (0) 2022.04.25
JavaScript - 메소드  (0) 2022.04.14
댓글
01-20 10:36
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
글 보관함
250x250