javascript에서 반복문의 index가 포함되어있는 변수이름을 선언하고 싶습니다.

조회수 8225회

현재 제가 구현한 기능은 밑의 이미지와 같이 구현되어있습니다.

이미지

기능은 이렇습니다.

  • 판매자가 book1,2,3를 등록해서 해당 도서가 li태그로 출력되어 보인다.
  • 판매자가 book1 책을 판매하는데 성공해서 팔림 버튼을 클릭하였다.
  • 팔림 버튼번복하기 버튼으로 변경되고 li 태그의 텍스트에는 strike속성이 추가되어 취소선이 그어진다.
  • 번복하기 버튼을 클릭하면 다시 원래대로 돌아간다.

이 기능을 구현하기 위해

jequery+js코드를 이용했는데

(function(){
        $(document).ready(function(){
        // 가장 마지막 책 항목의 index를 가져온다.
        //(책이 3권이면 3의 값이 $book_list_num)에 저장된다.
        $book_list_num = $("div").data("listNum");

        for(i=1; i<= parseInt($book_list_num); i++){
           //궁금한 부분
            var btni = $("#btn"+i)
            console.log(btni)
        }
    });

})();

버튼 변수를 html에서 생성된 버튼의 갯수 만큼 변수를 만들어 버튼을 잡아주고 onclick 메소드를 이용하여 효과를 적용하게 만들고 싶어서 js에서 반복문을 이용했는데 반복문 속에서 변수를 button1, button2, button3 ... button+index로 잡기 위한 방법을 잘 모르겠습니다.

조언 부탁드립니다.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    다시 답변 드립니다.

    eval을 이용하시면 됩니다.

    eval("var btn" + i + " = '#btn" + i + "';");
    

    btni의 이름을 지정하는 변수를 하나 두면 될것 같습니다.

    var vname = "#btn"+i; 
    var btni = $(vname);
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 음.... 제가 원하는건 var btn1 = "#btn"+1 var btn2 = "#btn"+2 , var btn3 = "#btn"+3 처럼 되는 것입니다. 이를 어떻게 해결 할 수 있는지 궁금합니다. 한민수 2016.8.18 12:46
    • 보통은.. 그럴 경우 btn1, btn2, btn3이 아니라 btn[1], btn[2], bnt[3]과 같이 배열로 처리합니다. 알 수 없는 사용자 2016.8.18 12:56

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)