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
это свойство можно получить или set, с уникальным утверждением и ничего больше;
так что это полезно, когда вы хотите только изменить содержание уже существующие элемент
теперь, в точном случае вашего вопроса, Вы сказали, что хотите изменить текст элемента...
Чтобы быть более ясным, скажем, у вас есть следующий элемент HTML:
<span>Original text</span>
если вы используете первый вариант:
var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);
тогда это закончится с:
<span>Original textHello!</span>
потому что ты добавлен код textNode
.
поэтому вы должны использовать второе решение.