1

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

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

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

谢谢!

4

4 回答 4

3

而不是prependTo你可以使用html,所以你不会预先而是替换你的消息容器的内容:

$("#feedback-container").html(is_error ? "<p class=' alert alert-error'>"+message+"</p>" : "<p class=' alert alert-success'>"+message+"</p>");
于 2012-06-25T16:51:14.503 回答
3

你可以简单地使用这个:

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

所以你的容器的全部内容都被替换了。

于 2012-06-25T16:51:24.603 回答
2
$("#feedback-container").children(".alert:first-child").remove().end().prepend( "stuff" );

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

于 2012-06-25T16:52:33.637 回答
1

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

您正在寻找的很可能是使用给定内容设置匹配元素的 innerHTML 的html方法: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>"));
于 2012-06-25T16:57:48.787 回答