2012-05-21 146 views
2

我有一個簡單的問題,我想刪除最後一排一個表,我複製一個函數刪除雖然檢查一個:刪除最後一排表

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); 
    } 
} 

我如何改變它,這樣它每次調用它時只會刪除最後一行?謝謝大家的幫助!對此,我真的非常感激!

回答

7

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); 
} 
+0

是的!解決了這個案子!謝謝! 2分鐘。左,直到submition) –

+0

這不包括你的「被檢查」的情況下 –

1
function deleterow(tableID) { 

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

      table.deleteRow(row); 

} 
+0

沒了)),它刪除了第一行)) –

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); 
    } 
} 
+0

同樣的故事:)刪除第一行,而不是最後一個 –

+0

這很奇怪。在這種情況下試試這個: 函數deleterow(tableID){ 嘗試var table = document.getElementById(tableID); var lastRow = table.rows [0]; table.deleteRow(0); (e){ } catch(e){ } } – Simon

+0

否))也許我做錯了嗎?作爲一個評論:已經有8行的標題,總和9. –

0

我不知道,如果rowCount時有一些對你的特殊的意義。

while 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); 
    } 
} 
-1

使用 table.deleteRow(ⅰ);

代替

table.deleteRow(行); 希望這個作品:)

0

爲什麼不直接使用:

function deleterow(tableID) { 
    var table = document.getElementById(tableID); 
    table.deleteRow(-1); 
}