我正在使用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!" });
}
});
答案 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文档
答案 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