2015-07-26 11 views
10

Co jest zaletą tworzenia węzła TextNode i dołączania go do elementu HTML przez bezpośrednie ustawienie jego textContent?TextNode lub textContent?

Załóżmy, że mam rozpiętość.

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

I chcę zmienić jego tekst. Co jest zaletą korzystania z:

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

nad

span.textContent = 'hello';

Odpowiedz

12

To nie ma znaczenia, ale korzystne prawidłowego użytkowania w zależności od potrzeby.

Zasadnicza różnica polega na tym, że:

  • createTextNode() to metoda i działa podobnie jak sama nazwa mówi: to tworzy element ... potem trzeba coś z tym zrobić (jak w przykładzie, w którym dołącz to jako dziecko);
    więc jest to przydatne, jeśli chcesz mieć nowy element i umieścić go gdzieś
  • textContent jest właściwość można pobrać lub ustawić, z unikalnym oświadczenie i nic więcej;
    więc jest to przydatne, gdy chcesz tylko zmienić zawartość w już istniejących elementu

Teraz w określonym przypadku pytania, mówiłeś, że chcesz zmiany tekście Element ...
Aby być bardziej jasne, że masz następujące elementy HTML:

<span>Original text</span> 

Jeśli używasz pierwsze rozwiązanie:

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

to będzie kończyć:

<span>Original textHello!</span> 

bo ci dołączany swój textNode.

Powinieneś więc użyć drugiego rozwiązania.

Powiązane problemy