首页 > 解决方案 > 将页面从 ajax jquery 请求擦除到另一个

问题描述

我有一个表单提交的 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();但它不起作用:(

标签: javascriptjqueryajaxpost

解决方案


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()

推荐阅读