<script>
요소를 만나면, 웹 브라우저는 HTML 해석을 잠시 멈춤(HTML parsing paused)<script>
요소를 먼저 실행함(Script fetch)<script>
요소는 등장과 함께 실행됨
<script>
태그의 위치는<head>
와<body>
중 어디가 좋을까?
정리해서 추후 포스팅하기
부모가 자식을 여러 개 가지고, 부모가 하나인 구조가 반복되는 구조
(출처: https://www.w3schools.com/js/js_htmldom.asp)
console.dir
: DOM을 객체의 모습으로 출력하기document
: 자바스크립트에서 DOM은 document
객체에 구현되어 있음document
객체를 조회할 수 있음document.body
: document에서 body 조회하기element.children
: element의 자식요소 조회하기Node.parentElement
: Node의 부모요소 조회하기HTML Element를 추가하기
document.createElement(tagName)
document.createElement('div') //새로운 <div>요소 만들기
const tweetDiv = document.createElement('div') //새롭게 생성한 div element를 변수에 할당하기
document.append()
document.body.append(tweetDiv) //변수 tweetDiv에 담긴 <div>요소를 <body>요소에 append하기
// 새로운 단락 요소를 생성하고 문서에 있는 바디 요소의 끝에 붙이기
var p = document.createElement("p");
document.body.appendChild(p);
요소의 첫 번째 자식 앞에 Node 또는 string을 삽입
let div = document.createElement("div");
let p = document.createElement("p");
div.prepend("Some text", p);
console.log(div.childNodes); // NodeList [ #text "Some text", <p> ]
<div id="parentElement">
<span id="childElement">foo bar</span>
</div>
<script>
<!--삽입할 새로운 노드 만들기-->
var newNode = document.createElement("span");
<!--참조할 부모 노드 지정-->
var parentDiv = document.getElementById("childElement").parentNode;
var sp2 = document.getElementById("childElement");
parentDiv.insertBefore(newNode, sp2);
</script>
호출된 노드의 복제된 노드 생성
var p = document.getElementById("para1");
var p_prime = p.cloneNode(true);
HTML Element를 조회하기
() 안에 들어가는 단어에는 반드시 ''(또는 "") 해주기
Element
객체, 결과가 없다면 null
//클래스명이 tweet인 HTML요소 조회하기
const oneTweet = document.querySelector('.tweet')
//클래스명이 tweet인 모든 HTML 요소를 유사 배열로 받아옴
const tweets = document.querySelectorAll('.tweet')
특정 id인 요소 조회하기
//id가 password인 요소 조회하기
document.getElementsById('password');
특정 class이름을 가진 모든 요소 조회하기
//class이름이 test인 모든 요소 조회하기
document.getElementsByClassName('test')
특정 tag인 모든 요소 조회하기
//tag가 <div>인 모든 요소 조회하기
document.getElementsByTagName('div')
HTML Element를 변경하기
요소와 그 자손의 렌더링 된 텍스트 콘텐츠를 나타내기 → 사용자가 읽을 수 있는 텍스트를 나타낸다고 생각하면 됨
const renderedText = htmlElement.innerText
htmlElement.innerText = string
노드와 그 자손의 텍스트 콘텐츠를 표현하기→ script와 style 요소를 포함한 모든 요소의 콘텐츠
const oneDiv = document.createElement('div');
console.log(oneDiv) //<div></div>
oneDiv.textContent = 'dev';
console.log(oneDiv); // <div>dev</div> //<div>에 문자열 입력하기
oneDiv.classList.add('tweet');
console.log(oneDiv) //<div class="tweet">dev</div>
const content = element.innerHTML;
element.innerHTML = htmlString;
setAttribute('attribute name', 'attribute value')
//예시
li.setAttribute('id', 'main-heading') //list 속성에서 id 속성을 main-heading으로 설정
HTML Element를 삭제하기
Element.remove()
const element = document.getElementById('div-02');
element.remove(); // 'div-02' id를 가진 div 삭제하기