2010-11-28 3 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> 
関連する問題