繁体   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