На первый взгляд кажется, что оба свойства делают одно и то же.

В то время как innerHTML обеспечивает простой и удобный способ создания HTML-шаблонов в виде строк и внедрения их в DOM [объектную модель документа], textContent позволяет создавать только простые тексты в виде строк.

Теперь давайте разберем его.

textContent в действии:

Скажем, мы хотим вывести «Я люблю JavaScript».

‹p id="вывод"›‹/p›

‹скрипт›

document.getElementById("output").textContent = "Я люблю Javascript";

‹/скрипт›

innerHTML в действии:

innerHTML может делать все то же, что и textContent, плюс более высокий уровень манипулирования DOM.

Например

Давайте выведем «Я люблюJavaScript».

Примечание. «Я» выделено курсивом, «любовь» выделено жирным шрифтом, а «JavaScript» выделено красным.

‹p id="вывод"›‹/p›

‹скрипт›

document.getElementById(“output”).innerHTML = “em›I‹/em› ‹strong›love‹/strong› ‹span style=’color: red;’›JavaScript‹/span›»;

‹/скрипт›

Вывод:

innerHTML богаче, так как с ним можно пофантазировать.

Но если вы хотите вернуть только текстовое содержимое, используйте textContent.

Надеюсь, вы найдете это полезным.

Рад узнать от вас, как бы вы использовали эти свойства?