在jquery上面加载旧注释后,在顶部重新定位固定注释

在jquery上面加载旧注释后,在顶部重新定位固定注释,jquery,Jquery,我有这样的评论安排,默认情况下,固定评论显示在顶部 <button>Show All Comments</button> <ul class="comments"> <!--Ajax loaded hidden posts--> <li class="fixed">Fixed Comment</li> <li>Comment</li> <li>Co

我有这样的评论安排,默认情况下,固定评论显示在顶部

 <button>Show All Comments</button>

  <ul class="comments">
    <!--Ajax loaded hidden posts-->
     <li class="fixed">Fixed Comment</li>
    <li>Comment</li>
    <li>Comment</li>
    <li>Comment</li>
    <li>Comment</li>
    <li>Comment</li>

    <li>Comment</li>
    <li>Comment</li>
    <li>Comment</li>
    <li>Comment</li>
</ul>
.fixed{边框:1px纯红;}

显示所有评论
  • 固定评论
  • 评论
  • 评论
  • 评论
  • 评论
  • 评论
  • 评论
  • 评论
  • 评论
  • 评论
既然(正如您所指出的)可能存在或不存在
.fixed
注释,我们不能通过在
.fixed
注释之后插入新注释来作弊。相反,您可以在执行操作时预先添加新注释,然后将固定注释预先添加到同一节点上(这将自动将它们从DOM树中的原始位置删除)。这将适用于任意数量的
.fixed
元素(包括零)

$(文档)。在(“单击”,“按钮”,函数()上){
//添加新元素:
$(“.comments”).prepend(“
  • 旧评论
  • 旧评论
  • 旧评论
  • 旧评论
  • 旧评论
  • ”) //将.fixed元素重新排列回顶部: $(“.fixed”).prependTo($('.comments')) })
    。已修复{
    边框:1px纯红;
    }
    
    显示所有评论
    
    • 固定评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论

    而不是使用
    。如下面所示,在
    之前使用
    。在
    之后使用
    。我还将
    $(“.comments”)
    更改为
    $(“.fixed”)

    $(文档)。在(“单击”,“按钮”,函数()上){
    //显示Ajax加载的隐藏帖子代码
    $(“.fixed”)。在(“
  • 旧评论
  • 旧评论旧评论旧评论旧评论旧评论后) //请求的代码 /*$(“.comments”)。查找(“.fixed”)。是否附加到新的顶部*/ })
    .fixed{边框:1px纯红;}
    
    显示所有评论
    
    • 固定评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论
    • 评论

    好的,听起来很聪明,但在我的真实代码中我使用了这个ajax:
    $(“.comments”).prepend(data)
    ,有时没有
    .fixed
    注释,因此我无法使用
    $(“.fixed”)。在(数据)之后随时可用。我该如何解决这个问题?我认为,在这种情况下,必须使用父级
    $(“.comments”)。
    谢谢我的朋友。非常棒的方法。它就像一个符咒。标记