0

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

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

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

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

等等。

任何人都知道什么会起作用?

4

1 回答 1

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);

于 2013-12-18T20:45:37.980 回答