ฉันใช้ js ธรรมดาเพื่อแก้ไขข้อความภายในขององค์ประกอบป้ายกำกับและฉันไม่แน่ใจว่าเหตุใดฉันควรใช้ innerHTML หรือ nodeValue หรือ textContent ฉันไม่จำเป็นต้องสร้างโหนดใหม่หรือเปลี่ยนองค์ประกอบ HTML หรืออะไรเลย - เพียงแค่แทนที่ข้อความ นี่คือตัวอย่างของรหัส:
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.
ฉันดูแหล่งที่มา jQuery และใช้ nodeValue เพียงครั้งเดียว แต่ innerHTML และ textContent หลายครั้ง จากนั้นฉันพบการทดสอบ jsperf ซึ่งบ่งชี้ว่า firstChild.nodeValue นั้นเร็วกว่ามาก อย่างน้อยนั่นคือสิ่งที่ฉันตีความหมายถึง
ถ้า firstChild.nodeValue เร็วกว่ามากสิ่งที่จับได้คืออะไร? มันไม่ได้รับการสนับสนุนอย่างกว้างขวาง? มีปัญหาอื่น ๆ อีกหรือไม่?
nodeValue
ไม่ได้แยกวิเคราะห์ html ด้วย