首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery .append函数顺序问题

jquery .append函数顺序问题
EN

Stack Overflow用户
提问于 2012-08-27 22:17:11
回答 5查看 4.7K关注 0票数 0

ı知道这个主题并不具体。那我告诉你。

ı有一个文本框和按钮。当你输入一些东西并点击按钮时,它会创建div并将其附加到另一个div中。但问题是它必须将它附加到页面的顶部。这将是第二个div。

jquery代码:

代码语言:javascript
复制
$('#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代码:

代码语言:javascript
复制
<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之后,ı希望它是第一个。因为它是最新的评论,它必须是第一个,在页面的顶部。

糟糕的英语。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-08-27 22:24:50

我建议或多或少地做同样的事情,但是稍微改变一下你最初发布的代码:

代码语言:javascript
复制
$('<div />', {'class' : 'comment'}).prependTo('#comment_box');

element - created指定要创建的元素,作为第二个参数,它接受一个对象,该对象定义了创建该元素时应该使用的属性。

这使得(在大型项目中)长期维护代码变得更容易,尽管无可否认,这或多或少是纯粹的个人意见,没有任何指标可以为这种方法提供支持。

编辑了,回答了来自OP的问题:

ı应该在哪里插入文本?ı想要添加带有数据的div。

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

代码语言:javascript
复制
$('<div />', {'class' : 'comment', 'text' : not}).prependTo('#comment_box');

JS Fiddle proof-of-concept

或者:

代码语言:javascript
复制
$('<div />', {'class' : 'comment'}).text(not).prependTo('#comment_box');

JS Fiddle proof-of-concept

编辑了,回答了来自OP的问题:

可以问最后一个问题。ı想要在not之后添加,但它不起作用

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

代码语言:javascript
复制
var newDiv = $('<div />', {'class' : 'comment'}).text(not).prependTo('#comment_box');
$('<br />').insertAfter(newDiv);

如果您希望在刚刚创建的div中包含br,那么只需使用append()

代码语言:javascript
复制
$('<div />', {'class' : 'comment', 'text' : not}).append('<br />').prependTo('#comment_box');

或者:

代码语言:javascript
复制
$('<div />', {'class' : 'comment'}).text(not).append('<br />').prependTo('#comment_box');

参考文献:

这是section.

  • prependTo().

  • text().

的最后一部分

票数 1
EN

Stack Overflow用户

发布于 2012-08-27 22:19:39

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

票数 3
EN

Stack Overflow用户

发布于 2012-08-27 22:19:45

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12143774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档