2016-07-26 5 views
-2

Я не могу понять, почему в обратном вызове ajax «.html()» не работает. Цель состоит в том, чтобы заменить содержимое. Классы добавляются к элементу, но содержимое этого являются пустыми:jQuery .html не работает на ячейке таблицы

<td class="book-class centre cancelled"></td> 

Я удалил все другие сценарии со страницы, чтобы гарантировать, что ничего не сталкиваясь, я попытался удалить .removeClass() и .addClass(), но все же он не работает. Проведя два часа, глядя на него, я уверен, что это закончится тем, что станет чем-то простым, но любая помощь будет очень признательна.

$(document).ready(function() { 

    // Cancel Class 
    $(document).on('click', '.cancel-class', function(e) { 

     e.preventDefault(); 

     var cell = this; 
     var row = $(this).parent(); 
     var id = $(row).data('booking-id'); 

     $(this).html('<img src="assets/images/spinner.gif" class="spinner" data-booking-id="'+id+'">'); 

     $.ajax({ 
     type: "POST", 
     url: "controllers/cancelClass.ctrl.php", 
     dataType: 'json', 
     cache: false, 
     data: {"id": id}, 

     success: function() { 

      // NOT WORKING 
      $(cell).removeClass().addClass('book-class centre cancelled').html('<i class="fa fa-times-circle></i> Cancelled'); 
     }, 

     error: function(data) { 
      console.log(data); 
     } 
     }); 

    }); 

}); 

ответ

3

Возможно, это опечатка в вопросе, но если это не проблема, это будет проблемой. В следующей строке:

$(cell).removeClass().addClass('book-class centre cancelled').html('<i class="fa fa-times-circle></i> Cancelled'); 

Вы забыли о закрытии двойной котировки. Это должно быть так:

$(cell).removeClass().addClass('book-class centre cancelled').html('<i class="fa fa-times-circle"></i> Cancelled'); 
+0

Да, это было спасибо. Это довольно неловко ... – MKC

Смежные вопросы