从ajax jquery请求中擦除页面到另一个

时间:2018-10-25 21:03:34

标签: javascript jquery ajax post

我有一个针对表单提交的ajax发布请求,其中我根据控制器返回的值来操作页面,但是我的问题是,每当提交表单时,我都需要删除上一个请求中的值。例如,我提交表单,然后发生这种情况,如果第二次提交表单,我会在页面上添加一些文本,我需要从上次删除这些值,然后在页面上添加新内容。

代码如下:

 function ajaxPost(){

        // DO POST
        $.ajax({
            type : "POST",
            url : "/search",
            dataType: "json",
            data : {
                  'marcaId': $('#marcaId').val(),
                  'modelId': $('#modelId').val(),
                  'pretDeLa': $('#pretDeLa').val(),
                  'pretPanaLa': $('#pretPanaLa').val(),
                  'anFabrDeLa' : $('#anFabrDeLa').val(),
                  'anFabrPanaLa' : $('#anFabrPanaLa').val(),
                  'orasParam' : $('#orasParam').val()
            },
            success : function(data) {
                console.log(data);

                for(var i=0; i<data.length; i++){
                    $('.row.autovitElements').append("<div class='col-sm-3 elementAutovit'>" + "<div class='card' style='width:20rem;'>" +
                            "<img class='card-img-top' src=" + JSON.stringify(data[i].img) + "alt='Card image cap'>" +
                            "<div class='card-body text-center'>" +
                                "<p class='card-text text-center' style='color: black'>" +data[i].title+ "</p>" +
                                "<ul class='list-group list-group-flush'>" + 
                                    "<li class='list-group-item'>" + 
                                        "<div class='row'>" +
                                            "<div class='col-md-6'>" +
                                                "<i class='material-icons'>&#xe227;</i><span>"+ data[i].price +"</span>" + 
                                            "</div>" +
                                            "<div class='col-md-6'>" + 
                                                "<i class='material-icons'>&#xe0c8;</i><span>"+data[i].city+"</span>" +
                                            "</div>" + 
                                        "</div>" +
                                    "</li>" +
                                "</ul>" +
                                "<button href=''#' class='btn btn-danger'>Save</button>" +
                            "</div>" +
                        "</div> " +
                    "</div> ");

                }

        })

我尝试过使用$('.row.autovitElements').hide();,但无法正常工作:(

1 个答案:

答案 0 :(得分:1)

for(var i=0; i<data.length; i++){
  $('.row.autovitElements').append("<div class='col-sm-3 elementAutovit'>" + ...

要为ajax结果附加的元素是elementAutovit,它们是.row.autovitElements元素的子元素。因此,要“重置”结果,您将删除所有附加的元素,可以通过以下方式完成:

$('.row.autovitElements .elementAutovit').remove()

将删除所有这些特定元素。或者,如果您要保留的容器中没有其他东西,则可以将其清空

$('.row.autovitElements').empty()