Jquery appendTo多次复制内容

时间:2015-03-27 07:52:43

标签: javascript jquery html ajax html5

每次我使用JQuery的AppendTo()时,它都会复制我想要追加的项目。每次我用ajax(包括脚本)加载页面时,它都会复制它甚至更多次!它只在重新加载整个页面后第一次正常工作。

$("<tr><td><input name='quantity[]'/></td><td><input type='text' name='ItemDescription[]'/></td><td><span class='remove'>X</span></td></tr>")
    .appendTo('.tbody');

请注意,我还尝试了append()

$('.tbody').html($('.tbody').html() + 'string');

并且同样的问题仍然存在。

3 个答案:

答案 0 :(得分:0)

在执行追加过程之前,请先尝试复制

var copy = $('.tbody').html(); //This should be done initially before making any calls
$('.tbody').html(copy + 'string');

这样你就不会重复追加你的元素了。

答案 1 :(得分:0)

当你使用append()时,它会被附加到现有的主体(顺便说一下我不知道你为什么要在主体上附加一行。这应该附加到一个表中)。因此,如果您第二次调用append(),则会有两行。这正是append()的作用。如果要在每次加载后重新设计表,则必须使用

清除所有现有行
$('.tbody').html("");

但最好在身体中使用一个表并将该行附加到表中并清除表格。

答案 2 :(得分:0)

从您的描述中看起来您正在运行多次注册事件处理程序的脚本。最好的解决方案是不要这样做,即尝试只运行一次脚本。

如果您正在处理动态元素,请查看事件委派。

如果那是不可能的,另一种解决方案是在添加新处理程序之前删除任何处理程序,以便任何给定时间只有一个处理程序。您还可以使用事件名称空间来确保您不会删除其他一些处理程序

$('some-selector').off('click.duplicate').on('click.duplicate', function(){})