如何通过ajax成功函数追加无限数量的html元素?

时间:2012-06-22 14:31:39

标签: java ajax playframework

我想附加无限数量的HTML元素,并将数据作为注释给出。这是我的ajax:

function ajaxsubmit(){
    $.ajax({
        url: "/update",
        type: "POST",
        dataType: "html"
    }).success(function(data) {
          $('#result').html(data);
      });
    }

和我的HTML部分:

<div class="post" id="result"></div>

这是我的服务器端功能:

public static Result ajaxupdate(){
    String done = "test";
    return ok(done).as("text/html");
}

此功能仅追加一次,如果我第二次点击,则不附加。是因为我每次都应该有不同的身份证吗?这怎么可能(比如stackoverflow中有多条评论是如何工作的!)

先谢谢..

2 个答案:

答案 0 :(得分:1)

关于堆栈溢出的每个注释都会有某种ID关联(可能来自存储所有堆栈溢出数据的数据库,这将是唯一的,我猜这将以某种方式用作元素id。< / p>

最后,如果你有一个完整的评论系统,你可能想要从你的ajax调用中返回JSON。这个JSON可能看起来像这样:

  

{“id”:“12345”,“text”:“评论文字”,“用户”:“Andy”}

然后你可以解析它并将它添加到你的页面,并以'12345'作为包含元素的ID,或其他东西!

如果失败,暂时您可以使用jQuerys data()功能保存ID。这将在jQuerys自己的缓存中存储该元素的ID。这样就不需要是唯一的了。

无论哪种方式,我都确定非唯一元素ID将是它没有显示的原因。

<强>更新

Duh,当然,Carsten是绝对正确的,但希望你在这篇文章中可能还有一些很好的信息! :)

答案 1 :(得分:1)

使用$('#result').html(data);时,#result的内容将替换为新数据。 要将新数据附加到result,请使用

$('#result').append(data);