TextNode или textContent?

В чем преимущество создания TextNode и добавления его к HTML-элементу при прямом настройке его textContent?

Скажем, у меня есть промежуток.

var span = document.getElementById('my-span');

И я хочу изменить его текст. Какое преимущество использования:

var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);

над

span.textContent = 'hello';

Ответ 1

На самом деле это не имеет особого значения, кроме правильного использования в зависимости от необходимости.

Основное отличие состоит в том, что:

  • createTextNode() - это метод и работает так же, как его имя говорит: он создает элемент... тогда вы должны что-то с ним делать (например, в вашем примере, где вы добавляете его как дочерний элемент).
    , поэтому полезно, если вы хотите иметь новый элемент и поместить его где-нибудь
  • textContent - это свойство, которое вы можете получить или установить, с уникальным выражением и не более того,
    , поэтому полезно, когда вы хотите изменить содержимое уже существующего элемента

Теперь в конкретном случае вашего вопроса вы сказали, что хотите изменить текст элемента...
Чтобы быть более ясным, у вас есть следующий элемент HTML:

<span>Original text</span>

Если вы используете свое первое решение:

var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);

то он заканчивается:

<span>Original textHello!</span>

потому что вы добавили свой textNode.

Итак, вы должны использовать второе решение.