오늘 배운 내용
DOM 과 Node 두가지 개념을 정확히 익히고 차이점을 알아보자!
⛔️appendChild()
> node 에 접근하는 메소드의 인자로 element가 아닌노드객체
가 와야한다! ⛔️
DOM
은 객체 지향 모델로써 문서(XML,HTML)의 구조화된 표현을 제공HTML DOM
: HTML 문서를 조작하고 접근하는 표준화된 방법 (모든 HTML요소는 HTML DOM 을통해 접근)Document
: 웹페이지를 의미하는 객체, 웹페이지에 존재하는 HTML 요소에 접근하고자한다면 Document
객체부터 시작해야한다!: html요소와 관련된 작업을 도와주는 다양한 메소드 제공
HTML의 아이디, 클래스, 태그, 네임을 그대로 작성해준다.
document.getElementByID()
document.getElementsByClassName()
document.getElementsByTagName()
document.getElementsByName()
CSS 선택자 작성과 동일하게 사용!
document.querySelector()
document.querySelectorAll()
: 해당되는 요소의 첫번째 값만 반환한다.document.createElement()
: 지정된 HTML 요소를 생성 > 오브젝트를 넘기는것document.write()
: HTML 출력 스트림을 통해 텍스트 출력 > 단순 출력요소.onclick = function() {}
function (”click”, function객체)
.style
속성 ⇒ bg, color, text,....).innerHTML
, .innerText
,textContent
속성)// 요소 선택
let eleOne = document.getElementById('main');
// 스타일 변경
eleOne.style.backgroundColor = "blue";
// 요소의 내용 변경
let str = document.getElementById("title");
str.innerHTML = "subTitle";
DOM에 계층과 관계를 곁들인,,, 느낌
문서 노드
: html 전체 나타내는 노드요소 노드
: html요소 노드, 속성 노드
를 가지는 유일한 노드 (온갖 태그 생각하면 된다..)속성노드
: html요소의 속성은 속성노드, 요소 노드에 관한 정보를 가짐, 해당 요소 노드의 자식 노드에는 포함X (src,href,style 과같은 속성 생각하면 된다.)텍스트 노드
: html문서의 모든 텍스트는 텍스트 노드! (태그안에있는 텍스트나 그냥 텍스트 생각하면된다.)nodeName
: 이름정보를 알 수 있다. > 변경까지 (text,div,li ...)nodeValue
: 값 정보를 알 수 있다. > 변경까지 (content에 해당하는)nodeType
: 타입 정보를 알 수 있다. > 변경까지요소 노드
:1속성 노드
: 2텍스트 노드
: 3주석 노드
: 8문서 노드
: 9childNodes
: 자식노드들을 모두 확인 할 수 있다.childNodes[index]
: head~body 태그 안쪽의 엔터나 공백도 노드(텍스트노드)로 들어가는점 유의하기!appendChild(노드객체)
: 해당 노드의 자식에 덧붙히기// 첫번째 자식이 누구인지 보여주는것
console.log(mom.firstChild); //"sister"
// 첫번째 자식의 값
console.log(mom.firstChild.nodeName); //#text
console.log(mom.firstChild.nodeType); //3
console.log(mom.firstChild.nodeValue); //sister
; 웹 브라우저가 알려주는 HTML 요소에 대한 사건의 발생 (마우스, 키보드,등..)
자바스크립트는 이벤트에 반응하여 특정 동작을 수행할 수 있다.
<div class="btn" onclick="changeColor(this)">box1</div>
<script>
function changeColor (ele) {
ele.style.color = 'red';
}
</script>
window.onload = function() {
let one = document.getElementById('one');
one.innerHTML = "this is one!!";
}