javascript
  • jquery
  • 2012-06-25 15 views 1 likes 
    1

    我有一些代码。当它正常运行时,我会创建一条成功消息并使用prependTo以在屏幕上显示它。问题在于,当用户两次成功执行操作时,我最终会收到两条成功消息。Javascript - 寻找替代prependTo以便它不会添加多个项目

    有没有办法覆盖我的成功消息。这里是我目前如何处理它在我的代码:

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

    谢谢!

    +1

    而是每一次创建该元素的,为什么不只是改变一个已经存在的元素的含量/知名度? – j08691

    +0

    好点。提出的建议奏效了。我只是为了让我接受其中一个答案:) – Genadinik

    回答

    3

    您可以使用简单:

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

    所以的全部内容您的容器被更换。

    3

    而不是prependTo可以使用html,这样你就不会预先考虑,但取代你的消息容器的内容:

    $("#feedback-container").html(is_error ? "<p class=' alert alert-error'>"+message+"</p>" : "<p class=' alert alert-success'>"+message+"</p>"); 
    
    2
    $("#feedback-container").children(".alert:first-child").remove().end().prepend("stuff"); 
    

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

    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>")); 
    
    相关问题