jquery empty () не работает в Ajax вызове - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть модальное поле, в которое я поместил некоторые элементы в

 <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-l oop, максимальное количество объектов, которое я получу, равно 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 пропускается; элемент «ident1 »по-прежнему запоминает данные предыдущего пользователя и по-прежнему отображает их.

Я пытался использовать пустой метод jQuery в начале успеха ajax, чтобы очистить элементы но по некоторым причинам это все еще извергает старые данные. Я также разместил отладку console.log, чтобы убедиться, что оператор if пропущен, но все равно у меня есть

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

1 Ответ

0 голосов
/ 30 апреля 2020

Конечно, я допустил ошибку ладьи за все время ie, считая с «1» вместо «0». Мои элементы проиндексированы от 0 до 3, но я пытаюсь очистить от 1 до 4, что означало, что элемент 0 всегда был нетронутым!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...