버튼에 따라서 숫자값이 +1 되거나 -1 되는 기능
count_number
: 버튼에 의해 값이 바뀌는 textbutton
: 버튼에 따라 값 증가, 감소, 리셋...
<body>
<div class="container">
<div class="title">Counter</div>
<div class="count_number">0</div>
<div class="button_block">
<button class="btn_decrease">DECREASE</button>
<button class="btn_reset">RESET</button>
<button class="btn_increase">INCREASE</button>
</div>
</div>
</body>
...
querySelector
을 통해 각 버튼의 class
명을 불러옴addEventListener
을 통해 click
이벤트 생성textContent
로 count
값을 불러와 새로운 숫자 값 부여document.addEventListener("DOMContentLoaded", function () {
const count = document.querySelector(".count_number");
const btnDec = document.querySelector(".btn_decrease");
const btnRe = document.querySelector(".btn_reset");
const btnInc = document.querySelector(".btn_increase");
btnDec.addEventListener("click", function () {
let num = count.textContent;
num = Number(num) - 1;
count.textContent = num;
colorChange();
});
btnRe.addEventListener("click", function () {
count.textContent = 0;
colorChange();
});
btnInc.addEventListener("click", function () {
let num = count.textContent;
num = Number(num) + 1;
count.textContent = num;
colorChange();
});
function colorChange() {
if (Number(count.textContent) < 0) {
count.style.color = "red";
} else if (Number(count.textContent) > 0) {
count.style.color = "green";
} else if (Number(count.textContent) == 0) {
count.style.color = "black";
}
}
});
...
<body>
<div class="container">
<div class="title">Counter</div>
<div class="count_number">0</div>
<div class="button_block">
<button class="btn decrease">DECREASE</button>
<button class="btn reset">RESET</button>
<button class="btn increase">INCREASE</button>
</div>
</div>
</body>
...
document.addEventListener("DOMContentLoaded", function () {
let count = 0;
const value = document.querySelector(".count_number");
const btns = document.querySelectorAll(".btn");
btns.forEach(function (btn) {
btn.addEventListener("click", function (e) {
const classes = e.currentTarget.classList;
if (classes.contains("decrease")) {
count--;
} else if (classes.contains("reset")) {
count = 0;
} else if (classes.contains("increase")) {
count++;
}
if (count < 0) {
value.style.color = "red";
} else if (count > 0) {
value.style.color = "green";
} else if (count === 0) {
value.style.color = "black";
}
value.textContent = count;
});
});
});
const numbers = [10, 25, 30, 45];
let foundNumber = null;
numbers.forEach(function(number) {
if (number > 30) {
foundNumber = number;
}
});
console.log(foundNumber); // 출력: 45
forEach()
함수는 반환 값이 없으므로 새로운 배열을 생성하지 않음const numbers = [1, 2, 3, 4, 5];
const result = numbers.forEach(function(number) {
return number * 2;
// 어떤 값을 반환해도 forEach()의 반환 값은 여전히 undefined
});
console.log(result); // 출력: undefined
target
: 이벤트가 발생한 바로 그 요소를 직접 가리킴 currentTarget
: 이벤트 리스너(EventListener)를 가진 요소const classes = element.classList;
let div = document.querySelector('#content');
div.classList.add('info');
// remove only
let div = document.querySelector('#content');
div.classList.remove('visible');
// remove multiple
let div = document.querySelector('#content');
div.classList.remove('block', 'red');
var msg = document.querySelector('p').textContent;
console.log(msg);
// return : Hello World!
[참고자료]