채택완료

제이쿼리 질문입니다.

2018-12-08 (토) 14:46:48 2,352
Copy
<button class='add_btn' data-idx='27'>1번 버튼</button>

<button class='add_btn' data-idx='62'>2번 버튼</button>

<button class='add_btn' data-idx='33'>3번 버튼</button>

 

 

<script>

var num = 1;

$('.add_btn').click(function () {

 var add = '';

 for (var i = 0; i < num; i++) {

  add += $(this).data('idx') + ',';

 }

 

alert(add);

 

 num++;

});

</script>

제가 하고싶은건 버튼을 눌렀을때 data-idx값에 의하여 

1번버튼을 누르면 27,

그리고 2번버튼을 다시 눌르면 27,62

그리고 3번버튼을 다시 눌르면 27,62,33

이런식으로 나오게 하려고하는데

1번을 누르면 27,

2번을 누르면 62,62

3번을 누르면 33,33,33

이렇게 됩니다.. 뭐가문제일까요ㅠㅠ

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
Copy
var add = '';
$('.add_btn').click(function () {
  add += $(this).data('idx') + ',';
alert(add);
});

https://codepen.io/anon/pen/xmKyge

for문이랑 num 변수는 왜 넣으셨는지 모르겠지만

클릭할때마다 add변수가 초기화되고 num문에 의해 클릭을 한 횟수만큼 포문이 돌면서 클릭한 값이 들어가서 그렇습니다

답변에 대한 댓글 2개

당신을 천사로 임명합니다. ^^
감사하무니다ㅜㅜ 왜계속안되지해서 for문으로해도 안되고
배열로 넣어서 해도안되고..
바보같은짓 하고있었네요
2018-12-08 (토) 15:40:13

$(this) 는 현재 클릭한 버튼의 이벤트값이기 때문에 동일한값이 찍히는거구요 $(".add_btn.eq ("+i+")")이런식으로 필요한 값을 가져오면 될듯요

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