0

我想附加无限数量的 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");
}

此功能仅附加一次,如果我第二次单击,则不会附加。是因为我每次都应该有不同的ID吗?这怎么可能(就像在stackoverflow中,几个评论是如何工作的!)

提前致谢..

4

2 回答 2

1

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

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

{"id":"12345","text":"评论文本","user":"Andy"}

然后你可能会解析它并将它添加到你的页面中,并使用“12345”作为包含元素的 ID,或者其他东西!

如果做不到这一点,暂时您可以随时使用 jQuerys data()函数保存 ID。这会将 ID 与 jQuerys 自己的缓存中的元素相对应。这样它就不需要是唯一的。

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

更新

呃,当然,Carsten 是绝对正确的,但希望这篇文章中可能还有一些对您有用的信息!:)

于 2012-06-22T14:37:39.193 回答
1

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

$('#result').append(data);
于 2012-06-22T14:40:47.710 回答