javascript - 심화편(1) - 수정중
12271 단어 JavaScriptJavaScript
자바스크립트 심화편!
window
- Global Object(전역 객체)
- 우리가 사용하는 내장 객체를 속성으로 가지고 있다 (ex. console, document 등..)
- 브라우저 창을 대변하면 가장 최상단 객체(전역 객체)이다.
console.log(window)
console.log(window.innerWidth);
console.log(window.innerHeight);
DOM(Document Object Model)
- 웹 페이지에 나타나는 HTML 태그들을 모두를 객체로 다룰 수 있다.
- dir 메소드는 문자열 표시 형식으로 콘솔에 출력
- log 메소드는 파라미터로 전달받은 값을 HTML 형태로 출력
- dir 메소드는 객체의 속성을 좀 더 자세하게 객체 형태로 출력
console.log(documnet) // HTML을 보여준다.
console.log(typeof document) // object
console.dir(document) // 객체로 보여준다.
DOM 트리
- 각 객체를 node 라고 부른다.
- 노드를 부모 노드/자식 및 같은 위치이면 형제노드
- 태그를 표현하는 노드를 요소 노드(Element Node), 문자를 표현하는 노드를 텍스트 노드(Text Node)
- 텍스트 노드는 요소 노드의 자식노드! / 자식 노드를 가질 수 없다!
- 총 12가지 노드 타입
자식 노드 선택
const myTag = document.querySelector('#content')
console.log(myTag);
//형제 요소 노드
console.log(myTag.previousElementSibling);
console.log(myTag.nextElementSibling);
//부모 요소 노드
console.log(myTag.parentElement);
// 자식 요소 노드
console.log(myTag.children(1));
console.log(myTag.firstElementChild);
console.log(myTag.lastElementChild);
요소 노드 프로퍼티
- innerHTML은 HTML 코드를 문자열로 출력한다.
- innerHTML은 태그들끼리의 줄 바꿈이나, 들여쓰기, 띄어쓰기가 있을 때 그런 부분들도 모두 포함
- outerHTML은 요소 자체가 새로운 요소로 교체 된다.(수정x)
- textContent는 특수문자도 text로 취급한다.
const myTag = document.querySelector('#list-1')
myTag.innerHTML = '<li>Exotic</li>' // 값을 변경하기
myTag.innerHTML += '<li>Exotic</li>' // 값을 추가하기
myTag.outerHTML = '<ul id="new-list"><li>Exotic</li></ul>' // 요소 자체가 변경
console.log(myTag.textContent) // 요소 안의 텍스트를 가져온다.
myTag.textContent = '<li>new text!</li>' // <li>도 텍스트로 인식한다.
요소 노드 추가하기
- prepend, append: 메소드를 호출한 내부에서 앞쪽과 뒤쪽에 추가한다.
- before, after: 매소드를 호출한 앞쪽과 뒤쪽에 형제 노드로 추가
// 요소 노드 추가하기
const tomorrow = document.querySelector('#tomorrow')
// 요소 노드 만들기
const first = document.createElement('li')
// 요소 노드 꾸미기(innerHTML, textContent..)
first.textContent = '처음';
// 요소 노드 추가히가
const last = document.createElement('li')
last.textContent = '마지막'
first.prepend(first); // 제일 앞 부분 추가
tomorrow.append(first); // 제일 뒷 부분 추가
const prev = document.createElement('p');
prev.textContext= '이전';
tomorrow.before(prev); // 이전(앞)부분에 형제 노드 추가
tomorrow.after(prev); // 이후(뒷)부분에 형제 노드 추가
요소 노드 제거 및 이동
- 노드 삭제: remove;
- 노드 이동: prepend, append, before, after
const today = document.querySelector('#today');
const tomorrow = document.querySelector('#tomorrow');
// 노드 전체 제거
tomorrow.remove();
// 노드 자식 요소 제거
tomorrow.children[2].remove();
// 노드 이동하기
today.append(tomorrow.children[1]); // 내일 노드의 첫 번째 자식 노드를 오늘 노드로 이동
tomorrow.children[1].after(today.children[1]);
Author And Source
이 문제에 관하여(javascript - 심화편(1) - 수정중), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@guentc2/javascript-심화편1-수정중저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)