반응형

 

대충 이렇게 생긴 테이블이다...

<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"} ] 

 

반응형

+ Recent posts