Używam zwykłego js do zmiany wewnętrznego tekstu elementu etykiety i nie byłem pewien, na jakiej podstawie powinienem użyć innerHTML, nodeValue lub textContent. Nie muszę tworzyć nowego węzła ani zmieniać elementów HTML ani nic - po prostu zamień tekst. Oto przykład kodu:
var myLabel = document.getElementById("#someLabel");
myLabel.innerHTML = "Some new label text!"; // this works
myLabel.firstChild.nodeValue = "Some new label text!"; // this also works.
myLabel.textContent = "Some new label text!"; // this also works.
Przejrzałem źródło jQuery i używa ono nodeValue dokładnie raz, ale innerHTML i textContent kilka razy. Potem znalazłem ten test jsperf, który wskazuje, że firstChild.nodeValue jest znacznie szybszy. Przynajmniej tak to rozumiem.
Jeśli metoda firstChild.nodeValue jest znacznie szybsza, jaki jest haczyk? Czy nie jest szeroko obsługiwany? Czy jest jakiś inny problem?
nodeValue
nie analizuje też html