안녕하세요! 오늘도 이렇게 찾아왔습니다 요즘 velog 포스팅을 빼먹지 않고 써보려고 오늘도 제가 이렇게 찾아왔답니다
오늘은 베이직반에서 과제로 주어진 문제 중에 저를 괴롭히던 녀석을 데리고 왔습니다
계속 저를 괴롭혔지만 검색하고 또 검색하고 물어보고 또 물어보고 해서 답을 구한 다음 이해를 하고 포스팅으로 남기기 위해서 이렇게 왔습니다
그럼 바로 시작해볼까요?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="number">1</div>
<div class="number">2</div>
<div class="number">3</div>
<script src="5.js"></script>
</body>
</html>
<js 파일의 for문을 이용하여 현재 브라우저의 1,2,3 숫자에 10을 더해보세요.>
흠... 처음에 문제를 보고 고민을 했죠
number 클래스 태그들을 하나로 묶어서 +10을 더해주면 되겠다 하고 머리 속으로는 구상이 됐습니다
하지만 대체 그걸 어떻게 코드로 구현하는거죠...?
조금 작성을 해보았지만 저의 머릿속은 금방 새하얀 눈밭으로 변해갔습니다...
일단 const number = document.querySelectorAll(".number");
코드는 생각이 나는데 나머지를 어떻게 해야될지 모르는 상황이었습니다..!!
네 검색을 진행하다 보니 querySelectorAll
을 사용하는 경우 배열로 출력이 되기 때문에 값을 넣어주거나 수정을 할 때 for문을 이용해야된다는 점이었습니다!
조금 더 자세히 설명을 하자면 const number = document.querySelectorAll(".number");
코드를 작성했을 때 얻을 수 있는 값은 [div.number, div.number, div.number]
입니다
배열 형태로 값이 나오게 되며 우리는 하나씩 집어줘야할 필요가 있습니다
0번째, 1번째, 2번째 를 언급해주며 값을 추가 해줘야 되죠
for문의 기본 형태는 < for () {} > 입니다
그래서 저는
for (i = 0; i < number.length; i++) {
}
형태의 for문 반복조건을 작성 할 수 있었습니다
i < number.length
를 해준 이유는 0번째, 1번째, 2번째 배열들을 골라줘야하는데 number.length는 3이 나오게 됩니다 그런 의미는 결국 i < 3; 이라고 해석해 줄 수 있습니다
그 다음
number[i].innerText = Number(number[i].innerText) + 10
코드를 for문 중괄호 안에 넣어줄 수 있습니다
해당 코드를 해석한다면
number[i].innerText // i번째 <div class="number"></div> 안에 텍스트
= Number(number[i].innerText) + 10 // i번째 <div class="number"></div> 안에 텍스트를 꺼내서 10을 더해준다
라고 해석할 수 있습니다
결론적으로
const number = document.querySelectorAll(".number");
for (i = 0; i < number.length; i++) {
number[i].innerText = Number(number[i].innerText) + 10
}
이렇게 정리해서 작성해 줄 수 있습니다!
그러면
해당 이미지처럼 숫자가 출력되는 모습을 보실 수 있습니다!
기존에 1, 2, 3 이 출력 되었지만 현재는 11, 12, 13 을 출력할 수 있습니다
뿌듯하군요...
처음에 문제를 보고 코드를 작성할 때 손가락은 멈추고 머리속은 비워지며 몇 시간 동안 고민을 했지만 역시 결국 도움을 받는게 답이더라구요...
혼자서 해볼라고 항상 노력하지만 제 머릿속에서 안되는 것은 약간의 도움을 받아야지 더 효과적으로 공부가 되는 것 같다라는 것을 깨닳았습니다...
여러분들도 혹시 막히신다면 저 처럼 시간을 버리지 마시고 꼭 주변에 도움을 요청하셔서 조금이라도 시간을 절약하시고 문제를 해결해보세요! 그리고 꼭 이해될 때 까지 코드를 뜯어도 보시고 다른 방향으로 해석도 해보시고..!!
네! 오늘도 짧은 저의 velog 포스팅이었습니다 다음 포스팅도 꼭 다시 빠르게 돌아 올 수 있도록 노력하겠습니다!!
여러분 요즘 날씨가 많이 추워졌습니다 이럴 때 일 수록 감기 조심하시구요!!
우리는 또 행복해지자구요!!