Create
, Read
, Update
, Delete
를 나타낸다.요소를 만드는 메소드
이다.document.createElement('태그이름')
로 사용한다.Append
를 사용한다.추가하고자 하는 위치.append(추가하려는 요소)
CreateElement
메소드로 지정된 요소처럼 그 값으로 요소를 가지고 있어야한다.append
의 인자로 넣는 경우 해당 요소 자체가 이동한다.<!--HTML-->
<div class="outer">
<div class="inner">
<div class="item"></div>
</div>
</div>
//JS
let outer = document.querySelector('.outer')
let item = document.querySelector('.item')
outer.append(item)
// inner 안에 있는 item 을 outer 로 이동시켰다.
<!--HTML-->
<div class="outer">
<div class="item"></div> <!-- 쨘 -->
<div class="inner">
<!-- 여기있던 코드가 -->
</div>
</div>
querySelector()
는 해당하는 셀렉터를 가진 요소 중 가장 첫번째 요소를 가져온다.querySelectorAll()
은 해당하는 셀렉터를 가진 요소를 전부 가져온다.Array-like Object
)querySelector()
, querySelectorAll()
을 반드시 document 객체
에서만 사용할 필요는 없으며, 내가 원하는 곳을 지정하여 내부의 요소만 탐색 할 수도 있다.<!--HTML-->
<body>
<div class="first">
<div class="this">첫번째 this</div>
<div></div>
<div></div>
</div>
<div class="second">
<div class="this">두번째 this</div>
<div></div>
<div></div>
</div>
</body>
//JS
document.querySelector('.this').textContent // '첫번째 this'
// document 객체를 지정함으로, 문서 전체에서 찾아 그 첫번째 값을 리턴한다.
let second = document.querySelector('.second')
second.querySelector('.this').textContent // '두번째 this'
// .second 라는 클래스를 가진 요소의 내부에서만 탐색하여 첫번째 값을 리턴한다.
document.querySelector('body div.this > li:first-child div:hover')
여기서 query 는 개발에서 '조회한다.' 라는 뜻을 가지고 있다.
input
내부에 있는 값을 가져오거나 지정 할 수 있다.선택한 요소.value = '값'
으로 사용한다.선택한 요소.classList.add('클래스이름')
로 사용한다.<div> hi! </div>
<!--
document.querySelector('div').classList.add('hello')
를 JS에서 실행하는 경우 아래의 값으로 바뀐다.
-->
<div class="hello"> hi! </div>
선택한 요소.id = "id 값"
으로 사용한다.선택한 요소.setAttribute('속성', '속성값')
로 class 나 id가 아닌 속성을 추가 할 수 있다.<div> hi! </div>
<!--
document.querySelector('div').setAttribute('style', 'color : red;')
를 JS에서 실행하는 경우 아래의 값으로 바뀐다.
-->
<div style="color:red;"> hi! </div>
선택한 요소.textContent = '값'
으로 이용 할 수 있다.지우고자 하는 요소.remove()
로 사용한다.부모요소.removeChild(자식요소)
로 사용한다.<!--HTML-->
<body>
<div class="container">
<div class="here">날 지워줘!</div>
</div>
</body>
here
를 지우기 위해서 remove() 와 removeChild() 를 사용한다면 각각 아래와 같은 차이가 생긴다.// JS
let container = document.querySelector('.container')
let here = document.querySelector('.here')
here.remove() // 지워질 요소에 사용한다.
container.removeChild(here) // 부모요소에 인자의 요소가 있는 경우 삭제한다.
innerHTML
을 사용하여 내부의 내용을 비우면 전부 지울 수 있다.지우고자 하는 요소.innerHTML = " "
innerHTML
은 보안상의 문제가 있어 사용이 권장되지 않는다.remove()
, .removeChild()
를 이용하여 제거하는 방법이 권장된다.<!--HTML-->
<body>
</body>
let el = document.createElement('div') // div 요소를 만든다.
document.querySelector('body').Append(el)
// 혹은 document.body 로 선택이 가능하다.
<!--HTML-->
<body>
<div></div>
</body>
el.textContent = "hello" // 내부에 텍스트를 추가한다.
el.classList.add('here') // here이라는 클래스를 추가한다.
<!--HTML-->
<body>
<div class="here">hello</div>
</body>
el.remove()
<!--HTML-->
<body>
</body>