동적으로 입력받는 폼이 있다고 하자. 아래 그림과 같다.
첫 td의 순번은 그냥 단순한 순번이다.
헌데 삭제 후 다시 추가하면 count계산 로직이 ++ 밖에 없기 때문에 1,2,3,5,8 뭐 이런식으로 띄엄띄엄 될 수 있다. 물론 1을 지우면 2부터 시작되겠지.. 미관상 좋지 않다. 삭제 할 때마다 전체 tr개수를 고려해서 세팅을 해줘야 한다.
삭제 이벤트에 아래와 같은 로직을 적용해주면 된다.
var locCnt = "<c:out value='${fn:length(resultNationPoflcList)}'/>"; //번호 메기기 위한 변수,,수정화면에서 기존 등록된 데이터 총 갯수 세팅
function removeLoc(sn){
$J("#loc_tr"+sn).remove();
var size = $J("tr[id^=loc_tr]").size();
for(var i=0; i<size; i++){ //tr번호메기기
$J("tr[id^=loc_tr]:eq("+i+") th").text(i+1);
}
locCnt = size; //번호 카운트를 현재 총 사이즈 수로 초기화
}
동적으로 생성되는 tr에는 id가 붙는다. id = "loc_tr"+고유번호
그러니까 loc_tr로 시작되는 아이디 값을 가지는 tr을 모두 구해서 사이즈를 저장한 다음,
for문으로 돌면서 tr순서대로(:eq()메소드사용) 번호를 메겨주면 된다.
그리고 총카운트는 다시 tr의 size로 초기화 한다.
재밌군..ㅎㅎ