-이 관계를 꼭 익혀야지 js의 다이나믹한 코딩을 진행할 수 있다.

atrribue는 계층 구조를 포함하지 않는다. (자식 관계는 아니고 element를 부가적으로 설명해주는 것이기 때문.)
이 돔은 Core DOM, XML DOM, HTML DOM이 있다.
id가 "demo"인 element를 가져와서 .innerHTML라는 method를 사용하여 TextArea에 "Hello World!"라는 속성 Property를 적용하는 예제이다. 객체 지향 프로그래밍 언어에서 클래스 내부에서 정의된 함수 (객체의 함수)
-> 함수라 생각하자!

getElementById : http://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_getelementbyidgetElementByTag : https://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_getelementsbytagname2element[n]의 형식으로 p태그들에 접근이 가능해진다. 그래서 이런 식으로 값을 변경할 수 있다.getElementByClassName: http://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_getelementsbyclassnamequerySelectorAll: css에서 선택자를 고르는 방식(Class면 .class, id면 #id, element중 id면 element #id 등...)으로 element를 찾는 메서드이다.etc) https://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_form_elements
◼ document.anchors
◼ document.body
◼ document.documentElement
◼ document.embeds
◼ document.forms
◼ document.head
◼ document.images
◼ document.links
◼ document.scripts
◼ document.title

innerHTML : http://www.w3schools.com/js/tryit.asp?filename=
http://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_innerhtml
.attribute : https://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_image
documents.write : https://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_write


onclick : 이벤트별 한 함수만 적용할 수 잇다.
addEventListenner: 여러 방법을 쓸 수 있기에 보통 권장되는 방식이다.
http://www.w3schools.com/js/tryit.asp?filename=tryjs_addeventlistener_displaydate
internal방식으로 쓰는 addEveentListener는 여러번 사용이 가능하다.
<p id="demo"></p>
<script>
document.getElementById("myBtn").addEventListener("click", displayDate);
function displayDate() {
document.getElementById("demo").innerHTML = Date();
}
</script>
element.addEventListener (event, function, useCapture); addEventListener("click", function() {
myFunction(p1, p2);
});
버블링과 캡쳐링 : 이벤트 핸들러 발생시 부모 노드까지 쭈우욱 가는거?
블로그 글과 예제로 대체한다. 버블링이 기본값이다. 버블, 아래서 위로 뽀글뽀글 올라가는 그 느낌, 알자나
removeEventListener(): 이벤트 핸들러를 제거하고 싶을때 사용하는 메서드이다.
https://www.w3schools.com/js/tryit.asp?filename=tryjs_addeventlistener_remove
어떤 element에서 이벤트 발생했는지 확인하는 개념 - 이벤트 객체 개념
target: 이벤트가 발생하는 element를 리턴해준다.

type: 이벤트의 이름은 리턴해준다.
https://www.w3schools.com/js/tryit.asp?filename=tryjs_validation_js
-> let x = document.forms["myForm"]["fname"].value; : 이름이 myForm인 forms에서 이름이 fname인 부분을 추출, 그리고 해당 부분의 값을 가져온다.
숫자 검증: https://www.w3schools.com/js/tryit.asp?filename=tryjs_validation_number
-> 위의 부분에서는 getElementById를 사용한다.
숫자 검증은 알맞게 js 코드를 작성하면 된다.
+) 위 2개의 예제 코드에서는 js에서 input란에 값이 들어왔는지를 확인하는 부분을 작성하고 있는데, input element내에 required를 작성하여 미입력을 확인할 수도 있다.

일반적으로 확인하는 것들은:
이고, 검증은 위의 방법 외에 php나 서버 타 프로그램으로도 진행할 수 있다. 이걸 나누어보면,
이다. 우선은 Sever side vlidation부터 확인해보자.
HTML Input Attributes
CSS Pseudo Selectors (나중에 할 예정)
DOM Properties and Methods


(후설명)

-자료구조처럼 자식, 부모, 루트 구조인 트리 구조를 가진다.


DOM navigation을 활용한다면, innerHTML을 다음과 같이 작성할 수가 있다.


RootNode - Documents
body : https://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_body
documentElement -http://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_document
nodename Property- 읽기만 가능.
태그, attribute,text(text이면 #text로 출력)의 이름을 리턴
nodeValue - text와 attribute value를 출력
nodeType





