6

簡単な質問があります。テーブルの最後の行を削除したいのですが、チェックした関数を削除する関数を1つコピーしました。

function deleterow(tableID) {
    try {
         var table = document.getElementById(tableID);
         var rowCount = table.rows.length;

         for(var i=1; i<rowCount; i++) {
              var row = table.rows[i];
              var chkbox = row.cells[0].childNodes[0];
              if(null != chkbox && true == chkbox.checked) {
                   table.deleteRow(row);
                   rowCount--;
                   i--;
              }
         }
    }catch(e) {
        alert(e);
    }
}

呼び出されるたびに最後の行のみが削除されるように変更するにはどうすればよいですか?助けてくれてありがとう!ほんとうにありがとう!

4

6 に答える 6

18

deleteRow関数はインデックスを取得し、それを渡しますcount - 1

http://jsfiddle.net/jbabey/HEDNZ/

function deleterow(tableID) {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;

    table.deleteRow(rowCount -1);
}
于 2012-05-21T14:20:50.177 に答える
1
function deleterow(tableID) {

    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
     var row = table.rows[rowCount - 1 ];

            table.deleteRow(row);

}
于 2012-05-21T14:13:22.917 に答える
1

使用しない理由:

function deleterow(tableID) {
    var table = document.getElementById(tableID);
    table.deleteRow(-1);
}
于 2018-01-18T17:11:36.803 に答える
0

私はこれをテストしていませんが、このようなものが機能するはずだと思います:

function deleterow(tableID) {
    try {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    var lastRow = table.rows[rowCount]; 
    table.deleteRow(lastRow);

    }catch(e) {
        alert(e);
    }
}
于 2012-05-21T14:15:44.133 に答える
0

rowCountがあなたにとって特別な意味を持っているかどうかはわかりませんでした。

whileで繰り返す-最初に後ろから始めることができます。実際に削除するときに壊してください。

function deleterow(tableID) {
    try {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;
        var i = rowCount;

        while(i--) {
            var row = table.rows[i];
            var chkbox = row.cells[0].childNodes[0];
            if(null != chkbox && true == chkbox.checked) {
                table.deleteRow(row);
                rowCount--;
                break;
            }
        }
     }catch(e) {
        alert(e);
    }
}
于 2012-05-21T14:23:35.073 に答える
-1

table.deleteRow(i);を使用します。

代わりは

table.deleteRow(row); これがうまくいくことを願っています:)

于 2016-02-22T22:21:48.210 に答える