Ich verwende einfaches js, um den inneren Text eines Beschriftungselements zu ändern, und ich war mir nicht sicher, aus welchen Gründen ich innerHTML oder nodeValue oder textContent verwenden sollte. Ich muss keinen neuen Knoten erstellen oder die HTML-Elemente oder ähnliches ändern - ersetzen Sie einfach den Text. Hier ist ein Beispiel für den Code:
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.
Ich habe die jQuery-Quelle durchgesehen und sie verwendet nodeValue genau einmal, aber innerHTML und textContent mehrmals. Dann fand ich diesen jsperf-Test, der anzeigt, dass der firstChild.nodeValue deutlich schneller ist. Zumindest interpretiere ich das so.
Wenn firstChild.nodeValue so viel schneller ist, was ist der Haken? Wird es nicht allgemein unterstützt? Gibt es ein anderes Problem?
nodeValue
analysiert auch kein HTML