Estou usando js simples para alterar o texto interno de um elemento label e não sabia ao certo por que razão deveria usar innerHTML ou nodeValue ou textContent. Não preciso criar um novo nó ou alterar os elementos HTML ou algo assim - basta substituir o texto. Aqui está um exemplo do código:
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.
Procurei na fonte jQuery e ela usa nodeValue exatamente uma vez, mas innerHTML e textContent várias vezes. Então eu encontrei este teste jsperf que indica que o firstChild.nodeValue é significativamente mais rápido. Pelo menos é o que eu interpreto como significando.
Se firstChild.nodeValue é muito mais rápido, qual é o problema? Não é amplamente suportado? Existe algum outro problema?
nodeValue
não analisa html também