簡體   English   中英

在jQuery的最后一個元素之前追加元素不結束

[英]Append element not to end, before last element in jQuery

我試圖用AJAX帖子發表評論。 但最后一個comment元素包含提交按鈕。 添加后,提交按鈕后會出現新項目。

<div class="commentContainer" >

    <div class="comment">
        <div class="commentText">Any comment1 ... </div>
    </div>

    <div class="comment">
        <div class="commentText">Any comment2 ... </div>
    </div>
        ....................................
    <div class="comment"> 
        <div class="sendPanel">
            <input type="submit" value="Post" />
        </div>
    </div>

</div>

和發布請求的結果:

success: function (result)  {
    if (result.success) {
         $('.commentContainer').append('<div class="comment"><div class="commentText">' + result.text + '</div></div>');
    }   
} 

我想始終保持提交按鈕。 我怎樣才能做到這一點?

試試這個

  $('<div class="comment"><div class="commentText">' + result.text + '</div></div>')
   .insertBefore('commentContainer .comment:last-child'); 

甚至更好

$('<div>', {'class': 'comment'}).append(
    $('<div>', {'class': 'commentText', text: result.text})
).insertBefore('.commentContainer .comment:last-child');

這個性能更好

演示

jQuery last-child

jQuery insertBefore

您可以使用:last偽選擇器:
試試這個:

success: function (result) 
    {
        if (result.success) 
        {
            $('.commentContainer').find('div:last').before('<div class="comment"><div class="commentText">' + result.text + '</div></div>');
        }   
    }

試試這個 :

 success: function (result) 
    {
        if (result.success) 
        {
             $('<div class="comment"><div class="commentText">' + result.text + '</div></div>').insertBefore('.commentContainer .comment:last');
        }   
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM