// 해당하는 Id를 가진 요소에 접근 document.getElementById();// 해당하는 모든 요소에 접근
document.getElementsByTagName();// 해당하는 클래스를 가진 모든 요소에 접근
document.getElementsByClassName();// css 선택자로 단일 요소에 접근
document.querySelector("selector");
// css 선택자로 여러 요소에 접근
document.querySelectorAll("selector");
target.addEventListener( type, listener )
// 이벤트의 타입에는 click, mouseover, mouseout, wheel 등 다양한 이벤트를 감지. // listener 함수의 인수에는 이벤트에 대한 정보가 담겨있음.const myBtn = document.querySelector("button");
myBtn.addEventListener('click', function(){
console.log("hello world");
})
classList 객체를 통해 요소의 class 속성을 제어<button>Make me BLUE!</button>const myBtn = document.querySelector("button");myBtn.addEventListener('click', function(){
// blue 라는 클래스의 속성 값을 추가 할 수 있습니다.
myBtn.classList.add("blue");<span class="token comment">// myBtn.classList.remove("blue"); 클래스를 제거</span> <span class="token comment">// myBtn.classList.toggle("blue"); 클래스를 토글</span> <span class="token comment">// myBtn.classList.contains("blue"); 해당하는 클래스가 있는지 확인.</span>
})
document.createElement(target): target요소를 생성document.createTextNode(target): target텍스트를 생성.element.appendChild(target): target요소를 element의 자식으로 위치element.removeChild(target): element의 target 자식 요소를 제거.element.append(target) : target 요소를 element의 자식으로 위치target.remove() : target 요소를 제거const myBtn = document.querySelector("button"); const myUl = document.querySelector("ul");myBtn.addEventListener('click', function(){
for(let i=0; i < 5; i++){
const myLi = document.createElement('li');
const btnDel = document.createElement('button');
const btnTxt = document.createTextNode('버튼');btnDel<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span>btnTxt<span class="token punctuation">)</span><span class="token punctuation">;</span> btnDel<span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">'click'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">=></span><span class="token punctuation">{</span> myLi<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> myLi<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'삭제하기: '</span><span class="token punctuation">,</span> btnDel<span class="token punctuation">)</span><span class="token punctuation">;</span> myUl<span class="token punctuation">.</span><span class="token function">appendChild</span><span class="token punctuation">(</span>myLi<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span>
});
innerHTMLconst myBtn = document.querySelector("button"); const myP = document.querySelector("p"); const myInput = document.querySelector("input");myBtn.addEventListener('click', function(){
myP.textContent = myInput.value;
});// input 요소에 'input' 이벤트를 연결하면 실시간으로 값이 반영되게 만들 수도 있습니다.
myInput.addEventListener('input', ()=>{
myP.textContent = myInput.value;
});myP.innerHTML = "<strong>I'm Strong!!</strong>";
// innerHTML 은 요소(element) 내에 포함된 HTML 마크업을 가져오거나 설정합니다. 중요한 기능은 innerHTML로 값을 할당할 때, 마크업으로 변환할 수 있는 문자열이 있다면 마크업으로 만들어 보여준다는 것 입니다. 만약 그런 문자열이 없다면 그냥 문자열만 컨텐츠로 설정합니다.
// innerText 속성은 요소의 렌더링된 텍스트 콘텐츠를 나타냅니다. (렌더링된에 주목하세요. innerText는 텍스트 내에 문법적으로 처리가 가능한 텍스트가 있으면 처리가 끝난 결과물을 텍스트로 전달합니다.)
// textContent 속성은 노드의 텍스트 콘텐츠를 표현합니다. 컨텐츠를 단순히 텍스트로만 다룹니다.
styleconst target = document.querySelector("p");
const txtColor = target.style.color; // 현재 스타일 정보를 가져옵니다.
target.style.color = "red"; // 현재 스타일 정보를 변경합니다.
target.style.fontWeight = "bold"; // 현재 스타일 정보에 font-weight 속성이 없다면 추가합니다.
target.style.color = null; // 현재 스타일 정보를 제거(초기화)합니다.height, color …)background-image ⇒ backgroundImage)float 속성의 경우 이미 자바스크립트의 예약어로 존재하기 때문에 cssFloat으로 사용. style 객체를 통해 설정된 스타일은 CSS inline 스타일과 동일한 가중치.수정의 여지가 있는 스타일에는 많이 사용되지 않고 classList를 이용한 클래스 제어가 더 효과적.getAttribute: 요소의 특정 속성 값에 접근.
setAttribute: 요소의 특정 속성 값에 접근하여 값을 수정.
<p id='myTxt'>hello lions</p>
<img src='https://static.ebs.co.kr/images/public/lectures/2014/06/19/10/bhpImg/44deb98d-1c50-4073-9bd7-2c2c28d65f9e.jpg'>
<script>
const target = document.querySelector('p');
const myimg = document.querySelector('img');
const idAttr = target.getAttribute('id');
console.log(idAttr);
myimg.setAttribute("src", "https://img.wendybook.com/image_detail/img159/159599_01.jpg");
</script>
<img
class="terran battle-cruiser"
src="battle-cruiser.png"
data-ship-id="324"
data-weapons="laser"
data-health="400"
data-mana="250"
data-skill="yamato-cannon"
/>
<script>
const img = document.querySelector('img')
console.log(img.dataset);
console.log(img.dataset.shipId);
</script>insertAdjacentHTML : 요소 노드를 대상의 인접한 주변에 배치const sayHi = document.querySelector('.sayHi'); sayHi.insertAdjacentHTML('beforebegin', '<span>안녕하세요 저는</span>'); sayHi.insertAdjacentHTML('afterbegin', '<span>재현입니다</span>'); sayHi.insertAdjacentHTML('beforeend', '<span>면접오시면</span>'); sayHi.insertAdjacentHTML('afterend', '<span>치킨사드릴게요</span>');
//beforebegin → 여는태그 앞에
//beforeend → 닫는태그 앞에
//afterbegin → 여는태그 뒤에
//afterend → 닫는태그 뒤에
<!-- 주석입니다 주석. -->
<article class="cont">
<h1>안녕하세요 저는 이런 사람입니다.</h1>
<p>지금부터 자기소개 올리겠습니다</p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt incidunt voluptates laudantium fugit, omnis
dolore itaque esse exercitationem quam culpa praesentium, quisquam repudiandae aut. Molestias qui quas ea iure
officiis.
<strong>감사합니다!</strong>
</article>
const cont = document.querySelector(".cont");
console.log(cont.firstElementChild); // 첫번째 자식을 찾습니다.
console.log(cont.lastElementChild); // 마지막 자식을 찾습니다.
console.log(cont.nextElementSibling); // 다음 형제요소를 찾습니다.
console.log(cont.previousSibling); // 이전 형제노드를 찾습니다.
console.log(cont.children); // 모든 자식요소를 찾습니다.
console.log(cont.childNodes); // 모든 자식노드를 찾습니다.
console.log(cont.parentElement); // 부모 요소를 찾습니다.
// 자기 자신부터 시작해 부모로 타고 올라가며 가장 가까운 cont 클래스 요소를 찾습니다. 단, 형제요소는 찾지 않습니다.
console.log(cont.querySelector('strong').closest('.cont').innerHTML);