ı知道这个话题并不具体。让我告诉你。
ı有一个文本框和按钮。当你输入内容并单击按钮时,它会创建div并将其附加到另一个div。但问题是它必须将它附加到页面顶部。它将成为第二个div。
jquery代码:
$('#send').click(function() {
var not=$('#not').val();
$.ajax({
type:"POST",
url: "some.php?islem=not",
data:{not:not},
success: function(result){
$('#comment_box').append('<div class="comment">'+not+'</div>');
}
});
});
html代码:
<textarea style="width: 794px; height: 48px;" id="not"></textarea>
<input type="button" value="Yolla" style="margin-top:35px;" id="send"/>
<div id="comment_box">
<div class="comment">comment-1</div>
<div class="comment">there is comment in here-2</div>
<div class="comment">there is comment in here-3</div>
<div class="comment">there is comment in here-4</div>
<div class="comment">there is comment in here-5</div>
</div>
当ı添加一些东西时,新的div显示在评论-1之后,ı希望它是第一个。因为它是最新的评论,必须首先在页面的顶部。
英语不好的故事。答案 0 :(得分:3)
尝试.prepend()http://api.jquery.com/prepend/
答案 1 :(得分:1)
使用http://api.jquery.com/prepend/ perpend
代替附加
答案 2 :(得分:1)
而不是.append()
使用.prepend()
。
答案 3 :(得分:1)
使用'before'而不是追加:
$('#comment_box').before('<div class="comment">'+not+'</div>');
*爱土耳其键盘里的我嘿嘿
答案 4 :(得分:1)
我建议或多或少地使用相同的东西,但稍微扭曲了您最初发布的代码:
$('<div />', {'class' : 'comment'}).prependTo('#comment_box');
元素创建指定要创建的元素,并且第二个参数采用定义应该用于创建该元素的属性/属性的对象。
这使得从长远来看(在大型项目中)维护代码变得容易一些,但不可否认,这或多或少是一种纯粹的个人观点,没有任何指标我可以为这种方法提供支持。
已编辑以回应OP提出的问题:
应该在哪里插入文字?我希望用数据添加div。
要向元素添加文本,有两种方法:
$('<div />', {'class' : 'comment', 'text' : not}).prependTo('#comment_box');
或者:
$('<div />', {'class' : 'comment'}).text(not).prependTo('#comment_box');
已编辑以回应OP提出的问题:
可以问最后一个问题。我希望在
not
之后添加,但它不起作用
为此,您需要获得对您插入的div
的引用,然后只需在br
之后插入div
元素:
var newDiv = $('<div />', {'class' : 'comment'}).text(not).prependTo('#comment_box');
$('<br />').insertAfter(newDiv);
如果您想要1>}中的br
,那么只需使用div
:
append()
或者:
$('<div />', {'class' : 'comment', 'text' : not}).append('<br />').prependTo('#comment_box');
参考文献:
append()
。jQuery(html, props)
,这是该部分的最后一部分。prependTo()
。text()
。