• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 for문 if문 사용으로 반복 줄이는 방법이 궁굼합니다.

for문 if문 사용으로 반복 줄이는 방법이 궁굼합니다.

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #29603

    김봉섭
    참가자

    $($('.intensity-circle')[0]).on('click', function(){
        $($('.intensity-circle')[0]).addClass('ic-check')
        $($('.intensity-circle')[1]).removeClass('ic-check')
        $($('.intensity-circle')[2]).removeClass('ic-check')
        $($('.intensity-circle')[3]).removeClass('ic-check')
        $($('.intensity-circle')[4]).removeClass('ic-check')
    })
    $($('.intensity-circle')[1]).on('click', function(){
        $($('.intensity-circle')[0]).addClass('ic-check')
        $($('.intensity-circle')[1]).addClass('ic-check')
        $($('.intensity-circle')[2]).removeClass('ic-check')
        $($('.intensity-circle')[3]).removeClass('ic-check')
        $($('.intensity-circle')[4]).removeClass('ic-check')
    })
    $($('.intensity-circle')[2]).on('click', function(){
        $($('.intensity-circle')[0]).addClass('ic-check')
        $($('.intensity-circle')[1]).addClass('ic-check')
        $($('.intensity-circle')[2]).addClass('ic-check')
        $($('.intensity-circle')[3]).removeClass('ic-check')
        $($('.intensity-circle')[4]).removeClass('ic-check')
    })
    $($('.intensity-circle')[3]).on('click', function(){
        $($('.intensity-circle')[0]).addClass('ic-check')
        $($('.intensity-circle')[1]).addClass('ic-check')
        $($('.intensity-circle')[2]).addClass('ic-check')
        $($('.intensity-circle')[3]).addClass('ic-check')
        $($('.intensity-circle')[4]).removeClass('ic-check')
    })
    $($('.intensity-circle')[4]).on('click', function(){
        $($('.intensity-circle')[0]).addClass('ic-check')
        $($('.intensity-circle')[1]).addClass('ic-check')
        $($('.intensity-circle')[2]).addClass('ic-check')
        $($('.intensity-circle')[3]).addClass('ic-check')
        $($('.intensity-circle')[4]).addClass('ic-check')
    })

     

    이런 식으로 0~4까지 쭉 하드 코딩 했습니다. 

    단순 [i]로 두고 반복문 사용하면서

    i=0 일 때는 [0]에 addClass [1][2][3][4]는 removeClass

    i=1 일 때는 [0][1]에 addClass [2][3][4]는 removeClass

    이렇게 식을 작성하고 싶은데 어떻게 하면 되나요?

    #29614

    codingapple
    키 마스터

    이벤트리스너 전체 반복문 돌리고 이벤트리스너 안에서는 

     $('.intensity-circle').removeClass('~~')

    for (let j = 0; j < i + 1, j++){

       $($('.intensity-circle')[ j ]).addClass(~~)

    }

    이래야할듯요

     

    #29654

    김봉섭
    참가자

    for (let j = 0; j < i + 1, j++) >> for (let j = 0; j < i + 1; j++)

    오타 맞나요?

    #29655

    김봉섭
    참가자

    $('.intensity-circle').on('click',function(){
        $('.intensity-circle').removeClass('ic-check');
       
    })

    for (let icCount = 0; icCount < 5; icCount++) {
        $($('.intensity-circle')[icCount]).on('click', function(){
            for (let j = 0; j <icCount+1; j++){
                $($('.intensity-circle')[j]).addClass('ic-check');
                }
        })
    }

     

    이렇게 해결했습니다!

    i를 다른 곳에서 전역 함수로 선언을 해버려서 icCount로 반복문 선언했습니다.

    이번에 하면서 js에서는 함수 내에서만 지역변수가 선언 되고 함수 밖에서는 모두 전역변수로 선언된다는 것을 알았습니다.!

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠