jQuery结果集保持填充

jQuery结果集保持填充,jquery,ajax,Jquery,Ajax,我有一个jQuery函数,它可以进行一个ajax调用,构建一个HTML字符串来填充特性。问题是页面上有一个刷新页面的链接,问题是jqueryajax调用添加的HTML再次将HTML添加到页面中,这样结果就不会加倍。如果你再做一次,结果会被再次添加 所以我的问题是如何清除HTML,使结果重复多次?或者,解决这个问题的最佳方法是什么 //展开“复制到组”模式组 $(“.groupZones.expand”).live('click',function(){ $(this).this('.contra

我有一个jQuery函数,它可以进行一个ajax调用,构建一个HTML字符串来填充
      特性。问题是页面上有一个刷新页面的链接,问题是jqueryajax调用添加的HTML再次将HTML添加到页面中,这样结果就不会加倍。如果你再做一次,结果会被再次添加

      所以我的问题是如何清除HTML,使结果重复多次?或者,解决这个问题的最佳方法是什么

      //展开“复制到组”模式组 $(“.groupZones.expand”).live('click',function(){ $(this).this('.contract').show(); $(this.css('display','none'); $(this).parent().parent()同级('.groupDetails').css('display','block'); $(this).parent().parent().sides('.groupDetails')。find('ul.device')。find('ul.list')。在('')之后; var cwpUserId=$('#ctl00_cphBody_hfCwpId').val(); var groupId=$(this.parent().sides('.add').find('input').val(); sortOn=“位置”; var mode=“dayparts”; var groupUl=$(this.parent().parent().sides('.groupDetails').find('ul').find('ul li.head'); var groupDetails=$(this.parent().parent().siplines('.groupDetails'); //获取区域详细信息。。 //装载

                  $.ajax({
                      type: "POST",
                      url: "ajax/DaypartMessagingGroups.asmx/GetDetailsForCopyToGroup",
                      data: "{'groupId':" + groupId + ",'cwpUserId':" + cwpUserId + ",'pageNum':0,'pageSize':5, 'sortOn':'" + sortOn + "','sortDirection':'" + sortDirection + "','mode':'" + mode + "'}",
                      contentType: "application/json; charset=utf-8",
                      dataType: "json",
                      success: function(msg) {
                          //$(btn).parents("ul.list-group-zones").children("li:.head").after(msg.d);
                          $(groupUl).after(msg.d);
                          $('.location').find('.contract').hide();
      
                          var copyZonePerPage = 5;
                          //var copyZoneItemsCount = $(groupUl).siblings('#hfAllGroupZones').val();
                          var copyZoneItemsCount = $('#hfAllGroupZones').val();
                          var copyZonePages = Math.ceil(copyZoneItemsCount / copyZonePerPage);
                          var copyZoneHtml = '';
                          var copyZoneCurLink = 0;
                          var current_copyzone_pagination_set = 1;
                          var num_of_pagination_shown = 0;
                          alert('Line 2113 CBG');
      
                          if (copyZonePages > 20) {
                              //var pagesAdded = (parseInt(current_copyzone_pagination_set) - 1) * 10;
      
                              while (num_of_pagination_shown < 20) {
                                  copyZoneHtml += '<a class="page_link_clicked" longdesc="' + copyZoneCurLink + '">' + (copyZoneCurLink + 1) + '</a>';
                                  copyZoneCurLink++;
                                  num_of_pagination_shown++;
                              }
      
                              copyZoneHtml += '<a class="page_link" id="btnNextZoneSet" longdesc="' + copyZoneCurLink + '">...</a>';
      
                          }
                          else {
                              while (copyZonePages > copyZoneCurLink) {
                                  copyZoneHtml += '<a class="page_link_clicked" longdesc="' + copyZoneCurLink + '">' + (copyZoneCurLink + 1) + '</a>';
                                  copyZoneCurLink++;
                              }
                          }
      
                          $(groupUl).parent().parent().find('ul li.footer').html(copyZoneHtml);
                          $('.page_link_clicked[longdesc=0]').addClass('current');
      
                      },
                      error: function(err) {
                          var err = eval("(" + err.responseText + ")");
                          if (ShowModalLogin(err.ExceptionType)) {
                              alert("An error occurred.");
                          }
                      }
                  });
      
              });
      
      $.ajax({
      类型:“POST”,
      url:“ajax/DaypartMessagingGroups.asmx/GetDetailsForCopyToGroup”,
      数据:“{'groupId':“+groupId+”,'cwpUserId':“+cwpUserId+”,'pageNum':0,'pageSize':5,'sortOn':“+sortOn+”,'sortDirection':“+sortDirection+”,'mode':“+mode+“}”,
      contentType:“应用程序/json;字符集=utf-8”,
      数据类型:“json”,
      成功:功能(msg){
      //$(btn)。父母(“ul.列表组区域”)。子女(“li:.头”)。在(msg.d)之后;
      $(groupUl).在(msg.d)之后;
      $('.location').find('.contract').hide();
      var copyZonePerPage=5;
      //var copyZoneItemScont=$(groupUl).sides('#hfAllGroupZones').val();
      var copyZoneItemScont=$('#hfAllGroupZones').val();
      var copyZonePages=Math.ceil(CopyZoneItemScont/CopyZoneParage);
      var copyZoneHtml='';
      var copyzonecrlink=0;
      var current_copyzone_pagination_set=1;
      显示的分页的var num_=0;
      警报(“第2113行CBG”);
      如果(copyZonePages>20){
      //var pagesAdded=(parseInt(当前拷贝区分页集)-1)*10;
      而(显示的分页数小于20){
      copyZoneHtml+=''+(CopyZoneUrLink+1)+'';
      CopyZoneCrlink++;
      显示的分页数++;
      }
      copyZoneHtml+='…';
      }
      否则{
      同时(copyZonePages>CopyZoneUrLink){
      copyZoneHtml+=''+(CopyZoneUrLink+1)+'';
      CopyZoneCrlink++;
      }
      }
      $(groupUl.parent().parent().find('ul li.footer').html(copyZoneHtml);
      $('.page_link_clicked[longdesc=0]')。addClass('current');
      },
      错误:函数(err){
      var err=eval(“+err.responseText+”);
      if(showmodalloin(错误例外类型)){
      警报(“发生错误”);
      }
      }
      });
      });
      
      假设您添加的内容由容器包装(您的
      ),只需在添加新内容之前清除容器中的内容即可


      您可以使用jQuery.remove()函数来完成此操作。

      在插入字符串中的内容之前,我会询问
      是否为空

      var $ul = $('#myUL');
      
      if( $ul.is(':empty') )
         $ul.append( content );
      
      或更简短的版本:

      $('#myUL:empty').append(content);
      
      请注意,
      :empty
      表示完全空,包括空格


      编辑:

      如果页面刷新是某些其他操作不必要的副作用,您可以在处理程序中防止这些

      $('a.myLink')。单击(函数(e){
      e、 preventDefault();//防止元素的默认行为。
      //运行你的代码
      });
      
      OP提到刷新页面。你认为这意味着数据更新吗?@rchern-我也想到了。这个问题不清楚。如果是这样的话,我认为最好采用只检索新的、唯一的数据而不是整个数据集的策略,以减少带宽。或者至少跟踪已下载的项目,并仅附加收到的唯一项目,以减少DOM活动。不过,这一点很好o) 我将其解释为希望刷新ul中的实际数据。@rchern-您可能是对的。唯一让我不这么想的是OP指的是刷新整个页面,这看起来不像AJAX。我假设正在进行一些缓存,刷新来自不同的操作。不过,我很可能是错的。通过一些调试和警报消息,我看到jquery只运行了一次。web服务正在处理多次。为了更好地解释,页面显示了信息的
        元素,其中也包含sub
          元素。该页面看起来像一个带有子表单的表单。页面顶部有一个过滤器链接,允许我更改顶级数据。当我点击过滤页面的链接时,页面已经用该类型的数据过滤,sub
            会重复
            $('a.myLink').click(function( e ) {
                e.preventDefault(); // prevents the default behavior of the <a> element.
                // run your code
            });