JAVASCRIPT&JQUERY
제이쿼리 특정행 클릭 시 정보 가져오기 (동적으로 생성된 요소의 이벤트 처리)
9400
2023. 2. 8. 09:50
<div class="col-md-6">
<label for="empMjNum" class="form-label">매니저명</label>
<input type="text" class="form-control" id="empMjNum" name="empMjNum">
<input type="text" class="form-control" id="empMjNm"
placeholder="직원명을 입력해주세요"/>
<button type="button" id="btnEmpMjNum" class="btn btn-outline-danger" data-bs-toggle="modal" data-bs-target="#exampleModal">검색</button>
</div>
모달창
<div class="modal" id="exampleModal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Modal title</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<!-- 직원 목록 시작 -->
<div class="bd-example">
<table class="table table-striped table-hover">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">직원번호</th>
<th scope="col">이름</th>
</tr>
</thead>
<tbody id="trAdd">
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
</tr>
</tbody>
</table>
</div>
<!-- 직원 목록 끝 -->
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
스크립트(제이쿼리)
//매니저선택하기
//모든직원가져오기
$('#btnEmpMjNum').on('click',function(){
$.ajax({
url : "/emp/getEmpAll",
type : "post",
success:function(result){
//result : List<EmpVO>
let code ="";
$.each(result,function(index,empVO){
console.log('empVO.empNum:'+empVO.empNum);
console.log('empVO.empNm:'+empVO.empNm);
code += "<tr class='trSelecct'><th scope='row'>"+(index+1)+"</th>";
code += "<td>"+empVO.empNum +"</td>";
code += "<td>"+empVO.empNm+"</td></tr>";
});
console.log("code : "+code);
//.html() : 새로고침 / append() : 누적
// $('#trAdd').html(""); //초기화
$('#trAdd').html(code);
}
});
});
//동적으로 생성된 요소의 이벤트 처리
$(document).on('click','.trSelecct',function(){
//tr이 여러개인데 그 중 클린한 바로 그 tr
let resultStr = $(this).children().map(function(){
return $(this).text();}).get().join(",");
console.log("resultStr : " + resultStr);
//resultStr : 5, EMP005, 이정재 = > SPLIT(",")를 해서 배열로 만들고
//[1]은 매니저명, [2]는 매니저명으로 입력
let arr = resultStr.split(",");
console.log("나눠줫니?"+arr[0]);
console.log("나눠줫니?"+arr[1]);
$('#empMjNum').val(arr[1]);
$('#empMjNm').val(arr[2]);
});