如何防止.load()之后第二次加载div

时间:2019-01-01 11:01:41

标签: javascript jquery ajax

我正在使用此Ajax脚本上传文件。所有文件都在div .myFiles中输出 上载新文件时,我成功使用$(".myFiles").load(" .myFiles");来立即看到添加新文件的结果。但是当我查看dom时,就是这样创建的:

<div class="myFiles">
    <div class="myFiles">
    </div>
</div>

如何防止在已经存在的.myFiles中创建.myFiles div?

这是我的ajax:

function ajax_file_upload(file_obj) {
        if(file_obj != undefined) {
            var form_data = new FormData();                  
            form_data.append('file', file_obj);
            $.ajax({

                type: 'POST',
                url: '',
                contentType: false,
                processData: false,
                data: form_data,

                beforeSend: function () {
                    $(".uploadspinner").show();
                },

                success:function(response) {
                  //$(".echo").html(response);
                  $('#selectfile').val('');
                  $(".myFiles").load(" .myFiles");
                  $(".uploadspinner").hide();
                  $(".uploadarea").hide();

                }




            });
        }
    }

2 个答案:

答案 0 :(得分:2)

您可以使用.append()函数代替加载。

代替$(“。myFiles”)。load(“ .myFiles”) 使用$(“。myFiles”)。append(“”);

答案 1 :(得分:1)

这不是大问题,但是如果您不希望同一div出现两次,那么我想说这就是您的html:

<div class="myFiles">
   <div class="outputFiles">

   stuff goes here

   </div>
</div>

并在您的success中使用它:

success:function(response) {
              //$(".echo").html(response);
              $('#selectfile').val('');
              $(".myFiles").load(" .outputFiles");
              ***

            }

结果:您只有1个.myFiles格和1个.outputFiles