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


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

이미지

기능은 이렇습니다.

  • 판매자가 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로 잡기 위한 방법을 잘 모르겠습니다.

조언 부탁드립니다.


조회수 139


1 답변


좋아요
0
싫어요
채택취소하기

다시 답변 드립니다.

eval을 이용하시면 됩니다.

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

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

var vname = "#btn"+i; 
var btni = $(vname);
  • 2016년 08월 18일에 작성됨

  • 음.... 제가 원하는건 var btn1 = "#btn"+1 var btn2 = "#btn"+2 , var btn3 = "#btn"+3 처럼 되는 것입니다. 이를 어떻게 해결 할 수 있는지 궁금합니다.    minsoo Han   2016.8.18 12:46     
  • 보통은.. 그럴 경우 btn1, btn2, btn3이 아니라 btn[1], btn[2], bnt[3]과 같이 배열로 처리합니다.    Napier   2016.8.18 12:56     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close