DOM(Document Object Model) ,이벤트 객체

유주성·2023년 5월 3일
0
post-thumbnail

DOM에서는 이전에 보지 못한 새로운 문법들이 너무 많이 나와 외울게 많지만, 여기서 배우는 것들은 기본적으로 많이 쓰일 것 같다 다 외워야겠다.

DOM

DOM은 자바스크립트로 HTML을 제어하는 것을 의미한다. DOM은 트리 구조이다.

DOM 조회 console.dir() 을 이용해 해당 변수에 밑이 있는 자식 요소들을 찾을 수 있다.

const newDiv = document.createElement('div');	//<div></div>만들기

document.body.append(newDiv);					//body태그 자식요소의 마지막 요소로 넣기
container.append(newDiv);						//아이디가 container인 요소의 자식 요소에 넣기

const oneNew = document.querySelector('.tweet')	//tweet 이라는 클라스를 가진 요소를 자바스크립트 변수에 저장
const tweets = document.querySelectorAll('.tweet')	//tweet 이라는 클라스를 가진 모든 요소를 자바스크립트 유사배열(Array-like object)에 저장

oneDiv.textContent = 'dev';			//oneDiv 요소에 문자열 'dev'넣기 <div>dev</div>
oneDiv.classList.add('tweet')		//oneDiv의 클라스로 'tweet' 넣기 <div class="tweet">dev</div>

oneDiv.classList.remove('tweet') 	//oneDiv의 클라스 'tweet' 지우기<div>dev</div>
oneDiv.remove()						//oneDiv 지우기

그다음으로 아이디와 비밀번호의 유효성을 검사하는 코드를 만들었다.

유효성 검사

let idText = document.querySelector("#username");
let realPassWord = document.querySelector("#password");
let testPassWord = document.querySelector("#password-retype");
let successM = document.querySelector(".success-message");
let failureM = document.querySelector(".failure-message");
let passwordMiss = document.querySelector(".mismatch-message");

idText.onkeyup = function(){
  if(isMoreThan4Length(idText.value)){
    successM.classList.remove("hide");
    failureM.classList.add("hide");
  }else {
    successM.classList.add("hide");
    failureM.classList.remove("hide");
  }
}

testPassWord.onkeyup = function(){
  if(isMatch(realPassWord.value,testPassWord.value)){
    passwordMiss.classList.add("hide");
  }else {
    passwordMiss.classList.remove("hide");
  }
}
function isMoreThan4Length(value) {
  return value.length >= 4
}

function isMatch (password1, password2) {
  return password1 === password2
}

결국 DOM으로 배운 코드들을 거의 다 쓴 것 같다. 기본적으로 어떻게 쓰는지 외우고 까먹을 때마다 이 글을 보며 상기 시키면 될 것 같다.

이벤트 객체

클릭을 했을 때의 버튼 값을 이용하는 방법을 사용한다.

let 변수.onclick = function(event){
	console.log(event);		//PointerEvent {isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0…}
	console.log(event.target);	//<button>태그안의 문자열</button>
    console.log(event.target.textContent);		//태그안의 문자열
    console.log(this.textContent);		//태그안의 문자열
}

여기서 알 수 있는 것은 this 가 event.target과 동일한 값을 출력하므로 같다고 할 수 있다. this가 변수의 값을 의미하는 건가? 잘 모르겠다..

0개의 댓글