2013-04-02 120 views
-1

我有一張表,我似乎無法刪除行,無論我嘗試。 它是一個簡單的5列表和從php/mysql查找使用Json生成的幾行。我最終想用按鈕單擊從mysql表中刪除行,但我堅持刪除jquery中的行的「簡單」部分。Onclick刪除表格行jQuery

下面是創建我的表代碼:

var table = $('<table></table>').addClass('tbc'); 
for (var i = 0; i < json.admin_tables.length; i++) { 
var row = $('<tr></tr>').addClass('guid').attr('id', i).add('<td>' + json.admin_tables[i].Room + '</td><td>' + json.admin_tables[i].time + '</td><td>' + json.admin_tables[i].Desk + '</td><td>' + i + '</td><td><input type="button" id="'+ i + '" class="delete" value="Delete row ' + i + '"</td>'); 
table.append(row); 
$('#roomTable').append(table); 
} 

下面的代碼做什麼都沒有但是,(在Firebug沒有錯誤)

$('.delete').click(function() { 
    $(this).closest("tr").remove(); 
} 

改變 「TR」,以 「TD」 將只刪除按鈕,我不想單獨刪除每個字段!

回答

2

.delete元素動態插入,所以你需要委派的事件處理程序,對其進行定位:

$('#roomTable').on('click', '.delete', function() { 
    $(this).closest("tr").remove(); 
}); 
+0

@nathanhayfield - 爲什麼? – adeneo

+0

nope adeneo對我沒有任何幫助。我也嘗試了空()以確保。你可以在這裏看到它:http://examtime.atwebpages.com/admintable.php – user1569869

+0

如果你使用舊的jquery可能需要http://api.jquery.com/delegate/而不是。 @adeneo更多地考慮它我認爲這只是一個速度的事情。移除需要很長時間,並且首先通過清空它由於某種原因而變快。 –