42

这是我的jQuery代码

 $.ajax({
   url: "PopUpProductDetails.aspx",
            cache: false
     }).done(function (html) {
     $("#dialog").append(html);
 });

第一次,它工作得很好。它显示PopUpProductDetails.aspx页面的内容。但是,在那之后,如果我再次点击,我会得到两次相同的内容,依此类推。我认为问题在于我需要先清除对话框元素,然后再添加新内容。

我怎么做?

4

4 回答 4

72

.append()将 html 附加到现有 html 字符串的末尾,.html()用于替换#dialog.

于 2012-12-11T14:58:57.490 回答
29

在函数内部先清除对话框,然后填充内容

$.ajax({
   url: "PopUpProductDetails.aspx",
            cache: false
     }).done(function (html) {
     $("#dialog").html("");
     $("#dialog").html(html);
 });
于 2012-12-11T15:16:55.293 回答
10

您可以.empty()先使用,然后.append()在一行中使用:)

像这样:

$.ajax({
  url: "PopUpProductDetails.aspx",
        cache: false
    }).done(function (html) {
    $("#dialog").empty().append(html);
});
于 2020-03-06T09:35:30.147 回答
2

如果您需要先清除对话框,请使用.empty(),它比.html("")快

请参阅Jquery 差异 .html("") 与 .empty()

于 2019-12-07T12:11:09.757 回答