2013-07-08 166 views
2

我克隆了一个tr并将其设置为data-id属性。然后,我使用该数据ID来打开模式,如果用户单击删除按钮,则使用AJAX调用删除该行。我能够传递data-id并成功提交AJAX并删除项目,但在成功执行删除操作时无法工作。使用JQuery删除克隆的元素

var clone = $('#sizeValueTemplate').clone(true); 
clone.data('id', data.id); 
clone.removeAttr('id'); 
clone.show().appendTo('#sizeValueTable'); 

确认模式被显示出来,一旦OK,我删除该项目。然后成功:

$('tr[data-id='+id+']').remove(); 
$('#modalDeleteSizeValue').modal('hide'); 

一切正常,没有错误,除tr不会被删除。该过程适用于页面加载中存在的元素。

+0

请提供的jsfiddle :) – OptimusCrime

回答

4

data函数不会将data-样式属性添加到元素,这就是为什么您不能查找它。您可以尝试使用clone.attr('data-id', data.id);

+0

这集的代表元素在内存中的对象的属性,但它并没有一个属性添加到元素。这就是为什么你可以用'this.data(“id”);'来访问值,但是不能通过属性'data-id'来查找元素。 – cfs

+0

你可以通过使用萤火虫来检查元素 – cfs

+0

完美。我使用的是萤火虫,但当我能够访问但不能删除它时感到困惑。谢谢。 – jabbermonkey

3

使用.data(key, value)设置数据不会将其插入到DOM中。您需要使用.attr('data-...', value)

那么,这会工作:

clone.attr('data-id', data.id);