3

私はテーブルを持っています。私のテーブル構造を見てください

<table width="100%" border="1">
  <tr>
    <td width="2%"><h2># SL NO</h2></td>
    <td width="70%"><h2>Name</h2></td>
    <td width="15%"><h2>Edit</h2></td>
    <td width="13%"><h2>Delete</h2></td>
  </tr>


  <tr id="id0">
    <td >1</td>
    <td>XXXXXXX</td>
        <td><a href="#"><img src="../images/icon_edit.gif" alt="Edit" /></a></td>
    <td width="13%"><a href="#"><img src="../images/delete_07.png" alt="Delete"  onclick="fnDeleteState(0)" /></a></td>
  </tr>
  <tr id="id1">
    <td>2</td>
     <td>XXXXXXX</td>
    <td><a href="#"><img src="../images/icon_edit.gif" alt="Edit" /></a></td>
    <td%"><a href="#"><img src="../images/delete_07.png" alt="Delete"  onclick="fnDeleteState(1)" /></a></td>
  </tr>

.........。

削除ボタンを押すと、その行を非表示にする必要があります。これを使用して、テーブルから特定の行を削除しました。

$("#id" + i).remove();

その正常に動作します。しかし、シリアル番号...私は間違って表示されます。つまり、2番目の行を削除しても、3番目の行にあるシリアル番号はまだ3このs2などを表示する必要があります...

私はjqueryでこれを行う方法があります事前に感謝します

4

3 に答える 3

3
function fnDeleteState(i) {
    $("#id" + i).remove();
    $("tr").each(function (index) { // traverse through all the rows
        if(index != 0) { // if the row is not the heading one
            $(this).find("td:first").html(index + ""); // set the index number in the first 'td' of the row
        }
    });
}
于 2012-04-05T10:35:10.537 に答える
1

私の理解が正しければ、各行の最初のセルを更新して、行のランクを表示する必要があります。

コンテンツ行ごとにクラスを追加することで実現できます。たとえば、「contentrow」(見出し行と区別するため) などのクラスを追加し、次のような関数を記述します。

function refreshRowIDs(){
    $(".contentrow").each(function(index){
        $(this).children("td:first").html(index);
    });
}
于 2012-04-05T10:30:05.750 に答える
0

シリアル番号を再注文する必要があります。削除後。次のようなものを使用できます。

 function reorder(){
   var i = 1;
   $('#tableid tr').each(function() {
        $(this).find("td:first").text(i);
        i++;
    });
  }
于 2012-04-05T10:30:21.263 に答える