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

时间:2009-12-22 12:25:38

标签: javascript jquery html

我正在使用PHP + jQuery开发一个评论系统。我需要在所有div元素之前将最后一条评论添加到顶部。 E.G。

<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!" });
    }
    });

4 个答案:

答案 0 :(得分:5)

$("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 Manipulation API

答案 1 :(得分:3)

有几种方法,例如prependTo方法:

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

答案 2 :(得分:0)

jQuery:before

DOM:insertBefore

答案 3 :(得分:0)

我认为你真正想要的是一个选择第一条评论的选择器,无论你有多少条评论(如果我做出一个糟糕的假设,那就是借口)然后给它一个比现有类更大的类。注释的名称-X,其中X是某个数字。

因此:

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

编辑:OH,和#comment&gt;部分是首先选择“评论”的ID,这使得它更快,但不是严格要求,除非你有多个评论部分,如其他地方......

EDIT2:添加了.parent()选择器 - 输入速度太快了。 EDIT3:需要更多咖啡,更改.parent()。prepend to .before