코딩 관련/Javascript와 jQuery, JSON
[jQuery] table에서 checkbox된 td 여러개 선택하기/find() 여러개
메리짱123
2021. 1. 27. 17:17
반응형
대충 이렇게 생긴 테이블이다...
<tr>
<td><input type="checkbox"></td>
<td><input type="text" value="111"></td>
<td><input type="text" value="222"></td>
<tr>
<tr>
<td><input type="checkbox"></td>
<td><input type="text" value="333"></td>
<td><input type="text" value="444"></td>
<tr>
checkbox가 체크된 tr의 자식인 td들의 input value들을 다 선택하는 방법..
* table tr index는 0부터 시작한다
* td index도 0부터 시작한다
* 원하는 행부터 checkbox가 checked 인지 검사
* checked된 행을 찾으면 그 안의 input[type=text]인 자식을 다 찾는다..
* find()로 찾은 자식들은 앞에부터 eq(0)으로 찾으면 된다. ㅎㅎㅎㅎ
var data[]; //data배열 생성
for(var i=2; i <$('table tr').size(); i++){
if($('table tr').eq(i).children().find('input[type="checkbox"]').is(':checked')){
var setData={}; //배열에 넣을 데이터쌍 변수 생성
setData['aa'] = $('table tr').eq(i).find('input[type="text"]').eq(0).val();
setData['bb'] = $('table tr').eq(i).find('input[type="text"]').eq(1).val();
data.push(setData);
}
}
setData를 for문 밖에 생성하게 되면
매번 다른 tr의 td값들이 덮어씌워진다. 결국 한 행의 td값들만 들어가게 됨. ㅠ ㅠ
콘솔에서 찍어보니 data는 이렇게 생긴거같다
data : [ { aa : "111" , bb : "222" } ], [ { aa : "333" , bb : "444"} ]
반응형