[英]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.