본문 바로가기
FRONT-END

DOM

by 지에스정 2020. 4. 24.

DOM 이란 HTML 또는 XML document와 상호작용하고 표현하는 API이다

 

페이지의 구조, 컨텐츠 및 스타일을 구현할 수 있는 인터페이스이다.

 

다음은 자바스크립트에 의해 구현되는 DOM의 예시이다.

let newdiv = document.querySelector('.id')
let divElement = document.createElement('div')
divElement.classList.add('newid');
divElement.textContent = document.getElementById('namebox').value;
newdiv.appendChild(divElement);

 

DOM의 요소를 선택하는 방법에 대해 하나하나씩 찾아보기로 하자.

 


querySelector를 사용한 요소 선택

 

  • document.querySelector  :  CSS선택자에 대한 가장 첫번째 DOM element를 선택한다
  • document.querySelectorAll : CSS선택자에 대한 모든 DOM element를 선택한다.

위의 예제를 보면

let newdiv = document.querySelector('.id')

변수 newdiv에 'id' 라는 id를 가진 첫번째 DOM element를 선택해 올 수 있다는 것을 알 수 있다.

 

 

id/class/tag name을 이용한 요소 선택

  • getElementById  :  일치하는 id를 가진 요소를 선택
  • getElementByClassName : 일치하는 class를 가진 모든 요소를 선택
  • getElementByTagName : 주어진 tag명을 반환
document.getElementById('namebox').value;

위의 예제에서 해당 id를 가진 요소의 value값을 반환한다.

 

부모,형제,자식

  • parentElement : element의 부모 호출
  • children : element의 자식 호출

DOM 생성

 

  • createElement() : DOM element를 생성하여 반환
let divElement = document.createElement('div')

divElement라는 변수를 만든 후 'div' HTML element를 만들어 준다.

 

classList를 이용한 class 제어하기

  • divElement.classList.add('class')     :  class값 추가
  • divElement.classList.remove('class')  : class값 제거
  • divElelment.classList.toggle('class')  :  class값이 존재한다면 추가, 아니면 제거
divElement.classList.add('newid');

해당 변수에 class 값은 'newid'를 추가해준다.

 

 

  • textContent : 텍스트 형태로 공백 값 까지도 그대로 가져옴
  • innerHTML : HTML 형태 그대로 가져옴
  • innerText : 텍스트 형태로 불필요한 공백은 제거하고 값을 가져옴
divElement.textContent = document.getElementById('namebox').value;

divElement에 'namebox' 라는 id를 가진 요소의 value값을 텍스트 형태로 가져오게 된다.

 

  • appendChild  : 부모 노드에 자식 노드를 추가
newdiv.appendChild(divElement);

newdiv라는 부모 노드에 자식노드로 divElement를 추가해준다.

 


DOM Event

 

해당 DOM Element에 Event를 걸어주는 역할을 한다.

 

  • target.addEventListener( type, listener) : 
function test() {
  console.log('버튼을 클릭하셨습니다')
}


const button = document.getElementById("id");
button.addEventListener("click", test);

target에는 이벤트를 추가하고자 하는 대상, type에는 하고자 하는 이벤트, listener에는 함수를 넣으면 된다.

 

 

또는 onclock 등 직접 Event interface를 적용할 수 도 있다.

 

button.onclick = handleClick; 

function handleClick() { 
  console.log('버튼을 클릭하셨습니다.');
}

'FRONT-END' 카테고리의 다른 글

[Material-ui] 시작하기  (0) 2020.07.06
[Redux] 리액트 - 리덕스 적용  (0) 2020.07.02
[Redux]리덕스 시작하기  (0) 2020.05.30
[React]React Core Concept  (0) 2020.05.25
HTML / CSS  (0) 2020.04.23