- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- LEVEL 1
- TIL
- Refactoring
- First Project
- MariaDB
- javascript
- 프로그래머스
- 코딩테스트
- 리팩터링 2판
- Err-Handling
- LEVEL1
- Git
- react
- CSS
- 에러핸들링
- TWIL
- 면접을 위한 cs 전공지식 노트
- 아고라스테이츠
- 알고리즘
- CRUD
- LEVEL 2
- 배포
- mongodb
- 오늘도 개발자가 안된다고 말했다
- java
- TMIL
- 코어 자바스크립트
- sql
- Docker
- typescript
성장에 목마른 코린이
TIL - 15일차 220211 (DOM) 본문
오전 8:30 - 8:45 plan / 나의 하루 목표
오늘은 제가 부족하다고 생각하는 DOM 부분을 좀 꼼꼼하게 기록하고 DOM 으로 HTML을 잘 조작할 수 있도록 공부할 예정입니다.
오전 9:00 - 10:00 Algorithm Basic 1,2
오전 10:00 - 11:00 chapter / DOM 이해하기
What is DOM?
DOM은 Document Object Model의 약자로 HTML요소를 Javascript Object처럼 조작할 수 있는 모델입니다.
자바스크립트를 통해 DOM으로 HTML을 조작할 수 있습니다.
HTML에 Javascript 적용하기
HTML에 Javascript를 적용하기 위해서는 <script> 태그를 이용합니다.
// HTML 파일과 같은 디렉토리에 존재하는 myScript.js을 불러옵니다.
<script src="myScript.js"></script>
script 태그를 추가하는 두가지 대표적인 사례가 존재합니다. 하나는 head 태그에 추가하는 방법, 다른 하나는 /body 가 끝나기 전에 추가하는 방법입니다. 비교했을때 head 태그에 추가할 경우 제대로 출력을 하지않아 script 태그는 body가 끝나기 전에 추가해 사용합니다.
오전 11:00 - 12:00 chapter / DOM으로 HTML 조작하기
CREATE - createElement
document.createElement('div) // 새로운 div element를 만듭니다
const tweetDiv = document.createElement('div) // 새롭게 생성한 div element를 변수에 할당합니다
APPEND - append, appendChild
document.body.append(tweetDiv) // 변수 tweetDiv를 body에 넣어줍니다
READ - querySelector, querySelectorAll
const oneTweet = document.querySelector('.tweet') // 클래스 이름이 tweet인 HTML Element를 조회합니다
const tweets = document.querySelector('.tweet) // 클래스 이름이 tweet인 모든 HTML Element를 유사 배열로 받아옵니다
const oneTweet = document.getElementById('tweet') // querySelector와 비슷한 역할을 하는 오래된 방식
UPDATE - textContent, classList.add
tweetDiv.textContent = 'dev'; // 비어있는 div 엘리먼트에 문자열을 입력합니다
console.log(oneDiv) // <div>dev<div>
tweetDiv.classList.add('tweet') // <div class="tweet">dev<div> // tweet 클래스를 추가합니다
DELETE - remove, removeChild
tweetDiv.remove() // append 했던 엘리먼트를 삭제합니다
// innerHTML을 이용하는 방법은 분명 간편하고 편리한 방식이지만, innerHTML은 보안에서 몇가지 문제를 가지고있습니다.
document.querySelector('#container').innerHTML = ''; // id가 container인 엘리먼트 아래 모든 엘리먼트를 지웁니다
// 대신할 메서드로 반복문을 통해 자식엘리먼트가 남아있지 않을 때까지 첫번째 자식엘리먼트를 삭제하는 코드입니다.
const container = document.querySelector('#container');
while (container.firstChild) {
container.removeChild(container.firstChild);
}
// container의 자식 엘리먼트가 1개만 남을 때까지, 마지막 자식 엘리먼트를 제거합니다.
const container = document.querySelector('#container');
while (container.children.length > 1) {
container.removeChild(container.lastChild);
}
// 클래스 이름이 tweet 인 엘리먼트만 찾아서 지우는 방법도 있습니다.
const tweets = document.querySelectorAll('.tweet')
tweets.forEach(function(tweet){
tweet.remove();
})
// or
for (let tweet of tweets){
tweet.remove()
}
오후 1:00 - 2:00 quiz / DOM
오후 2:00 - 5:00 pair / 유효성 검사
오후 5:00 - 6:00 zoom / 주간 회고
오후 6:00 - 6:30 review / 일일 회고
오후 6:30 - 7:00 survey / Weekly Self Reflection
오후 9:00 - 11:00 개인 학습 시간
이정윤 페어님과 같이 진행한 롤챔프정보 만들기 마무리 했습니다.
'Today I Learned' 카테고리의 다른 글
TIL - 17일차 220215 (고차 함수) (0) | 2022.02.15 |
---|---|
TIL - 16일차 220214 (DOM) (0) | 2022.02.14 |
TIL - 14일차 220210 (Spread, Rest 문법) (0) | 2022.02.11 |
TIL - 13일차 220209 (원시 자료형, 참조 자료형, 스코프, 클로저) (0) | 2022.02.09 |
TIL - 12일차 220208 (CSS 레이아웃) (0) | 2022.02.08 |