2010-11-28 4 views
1

많은 행이있는 테이블이 있습니다. 각 행은 UI에서 1, 2, 3 등과 같은 주문 번호로 식별됩니다.이 주문 번호는 UI에도 표시됩니다. 둘째 행이 삭제되면 td 삭제 및 셀 데이터 변경

행 삭제

이 순서는 동적

변경한다. 그런 다음 다른 행을 1, 2, 3 등과 같이 순서대로 다시 정렬해야합니다.

어떻게하면됩니까?

+0

일부 HTML은 게시 하시겠습니까? – hunter

답변

2

당신은 행의 삭제에 이런 식으로 뭔가를 실행할 수 있습니다 :

$("tr").click(function() { 
    var $table = $(this).closest('table'); 
    $(this).remove(); 
    $table.find('tr > td:first-child').map(function() { 
     $(this).html($(this).closest('tr')[0].rowIndex + 1); 
    }); 
}); 

데모 : http://jsfiddle.net/karim79/E5bCr/

+1

이것이 왜 아래 표를 얻는 지 친절하게 설명해주십시오. – karim79

+1

+1 나에게 좋을 것 같습니다. 익명의 유권자는 절름발이입니다. – user113716

+0

@patrick dw - 고마워요. – karim79

0

데모가 좋다. 하지만 질문은 테이블에서 번호 매기기 순서를 다시 지정하는 방법이라고 생각합니다. 나는 다른 방식으로 이와 비슷한 방법을 사용 했었지만 .. 번호 매기기를 다시 주문하는 법을 찾지 못했지만 대신 테이블 내용이 데이터베이스에서 나온 것입니다. 데이터베이스에서 다시 쿼리하고 모든 레코드를 가져옵니다.

$("#my_table tbody").find("tr").remove(); //remove the tr's from below tbody 
$.getJSON("file.php",function(json){ 
ctr = 1; 
for(i=0;i<json.length;i++){ 
$('#my_table tbody:first').append('<tr><td>'+ctr+'</td></tr>'); 
ctr++; 
}); 

이것은 임시 해결책입니다.

0
<script> 
    var gCounter = 1; // global 
    $('table').bind('row_deleted', 
     function() { 
      gCounter = 1; // reset 
      $(this).find('tbody tr').each(
       function() { 
        $(this).find(':first-child').html(gCounter++); 
       }); 
     }); 

    $('#your_table').trigger('row_deleted'); 

</script>