将添加的记录前置一次到结果表

时间:2013-09-13 22:10:14

标签: jquery append prepend

我正在使用jQuery Ui Dialog将记录添加到记录列表中。它有效,但我想将新添加的记录行(tr)添加到结果页面ONLY ONCE。它的工作原理很奇怪,append和prepend以及类似的函数都为每个元素执行此操作。我只希望将添加的记录添加到ONCE。

我尝试了很多东西,包括:

$( "#notes tbody" ).prependTo('#notes',response);

$( "#notes tbody" ).append(response);
$( "#notes tbody" ).prepend(response);

等等。

知道什么会起作用吗?

1 个答案:

答案 0 :(得分:0)

假设每个响应都有某种类或id可以从其余部分识别它,你可以设置一个if语句,将响应长度限制为< 1

if($("tbody .response-name").length < 1){
   $( "#notes tbody" ).prepend(response);
}

同样,如果新传入的响应与您在if语句中使用的类或ID相同,则不会追加它们。它应该有效,如果你有一些变量,记录的名称可能,帮助确定id。

例如

var recordName = // Some unique user input
<div id="response-" + recordName +></div>

如果有更多的背景,那么帮助会更容易。

这是我做的一个插件:

(function($){$.fn.specifPrepend=function(amountAppend,child,appItem){if($(this).children(child).length<amountAppend){$(this).prepend(appItem);}}})(jQuery);

使用$(".element").specifPrepend(amount, uniqueClass, itemToBeAppended);