자바스크립트에서 HTML을 제어하는 여러가지 명령들
js
// boxEL = 박스 요소
// HTML 의 'box' 요소를 찾아서, boxEL 의 변수에 할당을 한다.
let boxEL = document.querySelector('.box');
console.log(boxEL);
🔥 EXAMPLE 1
html
<head>
<script scr="./main.js"></script>
</head>
<body>
<div class="box">BOX!!</div>
</body>
결과
콘솔창 Null
🔥 EXAMPLE 2
<head>
<script defer scr="./main.js"></script>
</head>
<body>
<div class="box">BOX!!</div>
</body>
결과
콘솔창
<div class="box">BOX!!</div>
🔥 EXAMPLE 3
<body>
<div class="box">BOX!!</div>
<script scr="./main.js"></script>
</body>
결과
콘솔창
<div class="box">BOX!!</div>
브라우저는 코드를 맨 위부터 아래방향으로 순서대로 읽는다.
브라우저가 Script Tag 를 읽었을 때의 순서가 중요하다.
예를 들면, 예시 1번의 경우는 head 부분에 스크립트가 존재하기 때문에 밑의 body 부분에 있는 div 부분을 읽지 않아 콘솔을 진행했을 때 null 값으로 나온다. (내가 js 파일에서 다큐멘트(타이틀)의 '박스(div요소)'라는 클래스 요소를 찾아서 개발자 도구에 출력해달라고 요구를 했기 때문)
그래서 div 요소의 밑에 스크립트를 넣거나, head 부분의 스크립트에 defer 를 넣으면 된다.
HTML 요소 (Element) 1개 검색 / 찾기
const boxEL = document.querySelector('.box');
HTML 요소에 적용할 수 있는 메소드
boxEL.addEventListener();
인수 (Arguments) 를 추가 가능함
1 (첫번째 인수) 에는 이벤트 (Event, 상황) 를 넣을 수 있다.
2 (두번째 인수) 에는 핸들러 (Handler, 실행할 함수) 를 넣을 수 있다.
boxEL.addEventListener('Click', function () {
console.log('Click~!');
};
// 사용자가 클릭을 하면, function에 있는 이벤트를 실행해줌
🔥 결과
클릭하면 Click~! 이 뜸
HTML 에 있는 class 요소의 정보 (객체) 활용
const boxEL = document.querySelector('.box'); // HTML에서 요소 찾음
boxEL.classList.add('active'); // 요소의 클래스 정보를 활용함, boxEL에 active를 추가시킴
let isContains = boxEl.clssList.contains('active'); // class에 active라는 것이 contains(포함) 되어있는지 체크함
console.log(isContains); // active가 포함되어있기때문에 true
boxEl.classList.remove('active'); // remove : active클래스 지움
isContains = boxEl.classList.contains('active');
consolde.log(isContains); // 삭제시켰기때문에 false
HTML
<head>
<script defer scr="./main.js"></script>
</head>
<body>
<div class="box">BOX!!</div>
</body>
JS
let boxEl = document.querySelector('.box'); // 요소 찾음
console.log(boxEl); // 확인
boxEl.addEventListener('click', function () { //이벤트 추가
console.log('Click!!'); //Click!! 출력
boxEl.classList.add('active'); // class에 active 추가
console.log(boxEl.classList.contains('active')); // 확인, box active 라고 나옴
boxEl.classList.remove('active'); // active 지움
console.log(boxEl.classList.contains('active')); // box만 남아있음
});
boxEls.forEach(function () {});
찾은 요소를 반복해서 함수를 실행시킴
익명 함수를 인수로 추가함
JS
const boxEls = document.querySelectorAll('.box'); // querySelectorAll = 요소를 모두 찾음
console.log(boxEls); // 확인
boxEls.forEach(function (boxEl, index) { // 출력
boxEl.classList.add(`order-${index + 1}`); // ${} 쓰려면 ` `을 사용해야함 (' ' 아님)
console.log(index, boxEl);
});
text로만 이루어진 콘텐트를 반환시킴
JS
const boxEl = document.querySelector('.box');
console.log(boxEl.textContent); // getter, BOX!! (HTML에 지정되어있는 텍스트)
boxEl.textContent = 'daldaro?!'; // setter, daldaro 라는 textcontent 를 내가 지정함
console.log(boxEl.textConent); // daldaro?!, 지정한 값이 나옴