firstChild
и innerHTML
- это свойства нативного JS объекта элемента, а не объекта jQuery, который создает $(this)
.
Чтобы исправить это, используйте children().first().html()
:
$(this).children().first().html('<i class="fas fa-pause"></i>');
В качестве альтернативы вы можете просто переключить класс на i
напрямую:
$(this).find('i').toggleClass('fa-pause fa-play');
В любом случае я бы предложил провести сканирование через jQuery документация , так что вы получите представление о доступных методах. Функциональность подавляющего большинства из них можно понять только по их именам.