2011-08-28 84 views
14

我目前有一個表可以是N列和N行。在界面我有一個按鈕來刪除最後一列,但我不知道如何從所有行中刪除最後的td,我迄今爲止取得的第一行是td,最後一行td ,但留下其他人。jQuery刪除最後一個表列

這裏是我的代碼(僅刪除最後一個標題當前):

function removeTableColumn() { 
    /* 
     removeTableColumn() - Deletes the last column (all the last TDs). 
    */ 
    $('#tableID thead tr th:last').remove(); // Deletes the last title 
    $('#tableID tbody tr').each(function() { 
     $(this).remove('td:last'); // Should delete the last td for each row, but it doesn't work 
    }); 
} 

我這麼想嗎?

回答

28

這是因爲:last選擇只在一組的最後一個元素相匹配。

你可能會尋找:last-child,這是他們的父母的最後一個子元素相匹配:

+0

我不知道':last-child'選擇器,真好! –

6

:last返回選擇器找到的最後一個元素。所以#tableID tr td:last只會返回一個td

您可以選擇每個的最後一個TD TR做這樣的:

$('#tableID tr').find('th:last, td:last').remove(); 
+0

它完美的工作,但我不明白代碼的作用。對於每一行它都會得到孩子的td和th,但切片做什麼? –

0

您可以從表中刪除任何列這樣

//remove the 1st column 
    $('#table').find('td,th').first().remove(); 

    //remove the 1st column 
    $('table tr').find('td:eq(1),th:eq(1)').remove(); 

    //remove the 2nd column 
    $('table tr').find('td:eq(1),th:eq(1)').remove(); 

    //remove the nth column 
    $('table tr').find('td:eq(n),th:eq(n)').remove(); 

reference

相關問題