簡體   English   中英

如何在第一個元素之前添加一個元素?

[英]How to add an element before the first element?

我正在使用PHP + jQuery開發評論系統。 我需要在所有div元素之前將最后一條注釋添加到頂部。 例如

<div id="comment">
<div class="comment-3"></div>
<div class="comment-2"></div>
<div class="comment-1"></div>
</div>

所以現在我想用jQuery添加新的<div class="comment-4"></div>如下所示:

<div id="comment">
<div class="comment-4"></div>
<div class="comment-3"></div>
<div class="comment-2"></div>
<div class="comment-1"></div>
</div>

編輯:注意:我正在使用:

    $.ajax({
    type: "POST", url: "ajax.php", cache : false, data: goData, dateType: "text",
    success: function(data){
        $("#comment").append(data);
        $("#submit").attr({ disabled:false, value:"Shout it!" });
    }
    });
$("div#comment").prepend('<div class="comment-4"></div>');

或更現實

//something which generates a HTML DOM element
var newComment = ....;
$("div#comment").prepend(newComment);

當然,如果對您來說更自然,您可以使用prependTo語法

//something which generates a HTML DOM element
var newComment = ....;
$(newComment).prependTo("div#comment");

有關更多此類技巧,請查看jQuery文檔。

jQuery 1.3操作API

有幾種方法,例如prependTo方法:

$('<div class="comment-4"></div>').prependTo('#comment');

jQuery: 之前

DOM: insertBefore

我認為您真正要尋找的是用於選擇第一個注釋的選擇器,無論您有多少個注釋(例如,如果我做一個錯誤的假設),然后給它一個比帶有注釋名稱的現有類更大的類-X其中X是某個數字。

從而:

$("#comment > div[class^=comment-]:first").before('<div class="comment-'+$('div[class^=comment-]').length)+1+'"></div>');

編輯:哦,並且#comment>部分首先要選擇“ comment”的ID,這使其速度更快,但並不是必須的,除非您有多個注釋部分,例如其他地方...

EDIT2:添加了.parent()選擇器-輸入速度太快。 EDIT3:需要更多咖啡,將.parent()。prepend更改為.before

暫無
暫無

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

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