簡體   English   中英

jquery empty() 在 Ajax 調用中不起作用

[英]jquery empty() not working in an Ajax call

我有一個模態框,我在其中放置了一些元素

 <a class="incidents" tabindex="0"  id= 'incident0' data-toggle="popover" data-html="true" data-trigger="focus" data-placement="bottom" data-content=""></a>
 <a class="incidents" tabindex="1"  id= 'incident1' data-toggle="popover" data-html="true" data-trigger="focus" data-placement="bottom" data-content=""></a>
 <a class="incidents" tabindex="0"  id= 'incident2' data-toggle="popover" data-html="true" data-trigger="focus" data-placement="bottom" data-content=""></a>
 <a class="incidents" tabindex="0"  id= 'incident3' data-toggle="popover" data-html="true" data-trigger="focus" data-placement="bottom" data-content=""></a>

在完成我的 ajax 調用后,我使用 for 循環動態填充元素,我將獲得的最大對象數為 4,因此我將其構造為如果只有 2 個對象,它會停在事件 2 並爆發。

if (data.incidents.issuesQty != 0) 
   { 
     //console.log('I am here');           
     for (var i = data.incidents.issuesQty - 1; i >= 0; i--) 
     {                  
          if (data.incidents.issues[i].type == "ban")
          {
            $( "#incident"+i ).html("<i class=\"fas fa-ban\"></i>");
            $("#bannedUser" ).html("BANNED");
          }
          if (data.incidents.issues[i].type > 3)
          {
            $( "#incident"+i ).html("<i class=\"fas fa-thermometer-full\"></i>");
          }
          else if(data.incidents.issues[i].type > 2)
          {
            $( "#incident"+i ).html("<i class=\"fas fa-thermometer-half\"></i>");
          }
          else if(data.incidents.issues[i].type < 3)
          {
            $( "#incident"+i ).html("<i class=\"fas fa-thermometer-empty\"></i>");
          }
         $( "#incident"+i ).attr("data-content", '<b>Notes: </b>'+data.incidents.issues[i].notes');
     }
   }

問題是,如果我有一個填充元素事件 1 和事件 2 的用戶,然后我單擊另一個沒有事件的用戶,即跳過 if 語句塊; 元素“incident1”仍然會記住前一個用戶的數據並仍然顯示它。

我曾嘗試在 ajax 成功開始時使用 jQuery 空方法來清除元素,但由於某種原因,它仍然會反芻舊數據。 我還放置了一個 console.log 調試來驗證 if 語句是否被跳過,但我仍然有一個

$( "#incident1").empty();
$( "#incident2").empty();
$( "#incident3").empty();
$( "#incident4").empty();

當然,我犯了從 '1' 而不是從 '0' 計數的所有時間新手錯誤。 我的元素索引從 0 到 3,但我試圖從 1 清空到 4,這意味着元素 0 始終保持不變!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM