我正在尝试从我的表中删除一行。每行包含文本输入,编辑按钮和删除按钮。当我单击删除时,我希望删除整行。这是我的jquery代码:
$(document).on('click', 'button#delete_x', function () {
$(this).closest('tr').fadeOut(500, function(){
$(this).parents('tr:first').remove();
});
});
我无法访问行ID,因此我将获得最接近删除按钮的tr。我的问题不是删除行,而是显示新的内联样式:我的tr中没有出现!我想知道为什么会这样?我在mac yosemite上使用safari浏览器。
答案 0 :(得分:1)
fadeOut()与删除行不同。你想要.remove()
答案 1 :(得分:0)
答案 2 :(得分:0)
您正在尝试删除动画行的父级而不是行本身的行。
这是因为实际的"这个"值取决于调用站点,或者与大多数jquery方法一样,是否与明确强制的内容有关。
在jquery"这个"通常被迫成为你所采取行动的元素。所以当你把回调传递给fadeOut()方法时,在这个回调中,"这个"将指向淡出的元素(在这种情况下是您要删除的行)。
请改为尝试:
$(document).on('click', 'button#delete_x', function () {
$(this).closest('tr').fadeOut(500, function(){
$(this).remove();
});
});
......甚至更清楚:
$(document).on('click', 'button#delete_x', function () {
var me = $(this).closest('tr');
me.fadeOut(500, function(){
me.remove();
});
});