0

我知道这个话题并不具体。让我告诉你。

我有一个文本框和按钮。当您输入内容并单击按钮时,它会创建 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 在comment-1 之后显示,我希望它是第一个。因为它是最新的评论,它必须是第一个,在页面的顶部。

抱歉英语不好。

4

5 回答 5

3

尝试 .prepend() http://api.jquery.com/prepend/

于 2012-08-27T14:19:39.160 回答
1

使用http://api.jquery.com/prepend/ perpend而不是 append

于 2012-08-27T14:19:45.150 回答
1

而不是.append()使用.prepend().

于 2012-08-27T14:19:57.983 回答
1

使用“之前”而不是附加:

$('#comment_box').before('<div class="comment">'+not+'</div>');

*爱土耳其键盘中的我呵呵

于 2012-08-27T14:20:21.157 回答
1

我建议或多或少相同的事情,但对您最初发布的代码略有改动:

$('<div />', {'class' : 'comment'}).prependTo('#comment_box');

element-creation 指定要创建的元素,并作为第二个参数接受一个对象,该对象定义了应该创建该元素的属性/属性。

这使得从长远来看(在大型项目中)维护代码更容易一些,尽管这或多或少是纯粹的个人意见,没有我可以为这种方法提供支持的指标。

针对OP的问题进行了编辑:

我应该在哪里插入文本?我想用数据添加 div。

要将文本添加到元素,有两种方法:

$('<div />', {'class' : 'comment', 'text' : not}).prependTo('#comment_box');

JS Fiddle 概念验证

或者:

$('<div />', {'class' : 'comment'}).text(not).prependTo('#comment_box');

JS Fiddle 概念验证

针对OP的问题进行了编辑:

我可以问最后一个问题吗?我想在之后添加,not但它不起作用

为此,您需要获取对div插入的引用,然后只需在br之后插入元素div

var newDiv = $('<div />', {'class' : 'comment'}).text(not).prependTo('#comment_box');
$('<br />').insertAfter(newDiv);

如果你想要你刚刚创建的,那么br 只需使用:divappend()

$('<div />', {'class' : 'comment', 'text' : not}).append('<br />').prependTo('#comment_box');

或者:

$('<div />', {'class' : 'comment'}).text(not).append('<br />').prependTo('#comment_box');

参考:

于 2012-08-27T14:24:50.310 回答