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

问题描述:

我正在使用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 Manipulation API

+0

正是。 PREPEND是正确的。谢谢。 – MoeAmine 2009-12-22 12:46:18

jQuery的: before

DOM:insertBefore

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

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

我想你真正需要的是选择第一个评论,你不管他们的数量(借口,如果选择我做了一个可怜的假设),然后给它一个比现有类更大的类,其名称为comment-X,其中X是某个数字。

这样:

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

编辑:OH,和#COMMENT>部分是选择第一个“注释”的ID,这使得它速度更快,但不要求strickly,除非你有一个以上的评论部分,如其他地方...

编辑2:添加.parent()选择器 - 我输入得太快。 编辑3:需要更多的咖啡,更改.parent()。前置于.before