tokomon
180
2018-12-07 17:30:57
3
132

자바스크립트 동적으로 생성된 버튼 여러개 중 하나 클릭했을때



if(data) {
	for(var i=0; i<data.length; i++) {
		$('#a').append("· <input type='button' id=db_keyword class=keyword_list value="+data[i]+">");
		$('#a').append("<input type='button' value='삭제' id=keyword_delete1 class='keyword_delete' onClick='removeRow(\""+document.getElementById("db_keyword").value+"\")' style='cursor:hand;'><br>"); //
			}
	}

이런 식으로 동적으로 생성되는 버튼들이 있습니다.


예를 들어 

3개의 버튼과 3개의 삭제 버튼이 생겼습니다.

그 3개중에

1번째 버튼을 클릭하면 1번째 버튼의 value값을,

2번째 버튼을 클릭하면 2번째 버튼의 value값을 가져오고 싶은데


어떻게 코드를 짜더라도 첫번째 버튼의 value값만 가져오네요 ㅠㅠ 

어디선가 class를 이용하라고 한거같아 이런식으로 짜보고 있는데 잘 안되네요...ㅠ

$(document).on("click",".keyword_list",function (){ 
		var keyword_js = document.getElementsByClassName("keyword_list");
		//console.log(keyword_js);
		console.log(keyword_js[0].value);
});


버튼 id값에 번호를 붙여볼까 생각도 해봤는데

일단 클릭된 버튼의 값을 동적으로 불러오는게 안되니 소용이 없을것 같더라구요 ...


혹시 도와주실수있을까요? ㅠㅠ 

0
0
  • 답변 3

  • 20170923
    1k
    2018-12-07 17:34:43

    console.log(keyword_js[0].value); 로 하셔서 첫번째 값만 찍는거같네요

    console.log(keyword_js[1].value); 로 하시면 두번째 값만 찍겠죠?

    console.log(this.value); 로 찍어보시겠어요?

    0
  • 밥도둑계장
    238
    2018-12-07 17:35:12
    $(document).on("click",".keyword_list",function (){ 
    		console.log($(this).val());
    });
    0
  • 프론트덕후
    804
    2018-12-07 17:50:33 작성 2018-12-07 17:51:03 수정됨
    동적 버튼 엘리먼트 로드 되기 전 시점에 click 이벤트가 발생되는 건 아닌지요? setTimeout을 100 정도 주고 click 이벤트를 실행해보세요.
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.