Ich verwende plain js, um den inneren Text eines Label-Elements 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 irgendetwas ändern - ersetzen Sie einfach den Text. Hier ist ein Beispiel für den Code:nodeValue vs. innerHTML und textContent. Wie man wählt?
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 durch die jQuery Quelle sah, und es verwendet nodeValue genau einmal aber innerHTML- und textcontent mehrmals. Dann habe ich diesen Jsperf-Test gefunden, der darauf hinweist, dass der FirstChild.NodeValue wesentlich schneller ist. Zumindest interpretiere ich das so.
Wenn firstChild.nodeValue ist so viel schneller, was ist der Haken? Wird es nicht allgemein unterstützt? Gibt es ein anderes Problem?
Können Sie bitte eine Zusammenfassung hinzufügen? Manchmal werden Links kaputt und manchmal führen sie zu mehr Informationen als das, was notwendigerweise relevant ist. – Panzercrisis
Uh, 'nodeValue' analysiert html nicht. – Bergi
" Die Verwendung von textContent kann XSS-Angriffe verhindern "https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent – DRP