У меня есть проект MVC, в котором я использую Ajax для обновления раздела представления, содержащего значок FontAwesome 5. FontAwesome задается с помощью класса CSS, поэтому я предположил, что могу легко удалить, а затем добавить CSS для значка. Однако, когда я пытаюсь изменить CSS через jQuery, CSS никогда не устанавливается. Класс добавления/удаления работает, как и ожидалось, в обычном классе CSS, который я изменяю, но не в классе FA valid-icon
.
Это исходный HTML:
@if (Model.VALID_FLAG == "Y")
{
<div class="validation__text-success" id="valid-flag>
<i class="fas fa-check-circle" id="valid-icon"></i> Yes
</div>
}
else
{
<div class="validation__text-danger" id="valid-flag>
<i class="fas fa-times-octagon" id="valid-icon"></i> No
</div>
}
Это jQuery из вызова Ajax.
var $html = $(response);
if ($html.hasClass('alert-success')) {
$("#valid-flag").text('Yes');
$("#valid-flag").removeClass().addClass('validation__text-success');
$("#valid-icon").removeClass().addClass('fas fa-check-circle');
}
else if ($html.hasClass('alert-danger')) {
$("#valid-flag").text('No');
$("#valid-flag").removeClass().addClass('validation__text-danger');
$("#valid-icon").removeClass().addClass('fas fa-times-octagon');
}
text()
заменяет все содержимое, включая элемент значка. - person showdev   schedule 09.10.2018$html
, мы могли бы посмотреть. - person isherwood   schedule 09.10.2018html()
вместоtext()
. Другой вариант - обернуть текстовое содержимое#valid-flag
в элемент, например.<span class="icon-text">Yes</span>
. Таким образом, вы можете заменить текст, не заменяя значок. - person showdev   schedule 09.10.2018