Javascript - 寻找prependTo的替代方案,以便它不会添加多个项目

时间:2012-06-25 16:49:37

标签: javascript jquery

我有一些代码。当它正确运行时,我创建一个成功消息并使用prependTo以便在屏幕上显示它。问题是,当用户两次成功完成操作时,我最终会收到两条成功消息。

有没有办法覆盖我的成功消息。以下是我目前在代码中处理它的方式:

  $((is_error ? "<p class=' alert alert-error'>"+message+"</p>)" : "<p class=' alert alert-success'>"+message+"</p>")).prependTo("#feedback-container");

谢谢!

4 个答案:

答案 0 :(得分:3)

您可以使用prependTo代替html,因此您不会在前面添加内容,而是替换邮件容器的内容:

$("#feedback-container").html(is_error ? "<p class=' alert alert-error'>"+message+"</p>" : "<p class=' alert alert-success'>"+message+"</p>");

答案 1 :(得分:3)

你可以使用这个:

$("#feedback-container").html((is_error ? "<p class=' alert alert-error'>"+message+"</p>)" : "<p class=' alert alert-success'>"+message+"</p>"));

因此,您的容器的整个内容都将被替换。

答案 2 :(得分:2)

$("#feedback-container").children(".alert:first-child").remove().end().prepend( "stuff" );

工作演示http://jsfiddle.net/uVVYN/

答案 3 :(得分:1)

根据定义,prependTo将“插入此参数指定的元素的开头。”换句话说,它将插入,但不会替换

您正在寻找的内容很可能是 html 方法,该方法会将匹配元素的innerHTML设置为给定内容:http://api.jquery.com/html/

html()的使用与 prependTo()略有不同,但概念上相同:

 $("#feedback-container").html((is_error ? "<p class=' alert alert-error'>"+message+"</p>)" : "<p class=' alert alert-success'>"+message+"</p>"));