2015-07-26 9 views
10

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

Предположим, у меня есть пролет.

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

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

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

над

span.textContent = 'hello';

ответ

12

Это не имеет большого значения, преимущество, но надлежащего использования в зависимости от потребности.

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

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

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

<span>Original text</span> 

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

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

тогда закончится:

<span>Original textHello!</span> 

, потому что вы приложили ваш textNode.

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