Tôi đang sử dụng js đơn giản để thay đổi văn bản bên trong của một thành phần nhãn và tôi không chắc chắn về lý do nào tôi nên sử dụng InternalHTML hoặc nodeValue hoặc textContent. Tôi không cần tạo một nút mới hoặc thay đổi các thành phần HTML hoặc bất cứ thứ gì - chỉ cần thay thế văn bản. Đây là một ví dụ về mã:
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.
Tôi đã xem qua nguồn jQuery và nó sử dụng nodeValue chính xác một lần nhưng bên trongHTML và textContent nhiều lần. Sau đó, tôi tìm thấy thử nghiệm jsperf này chỉ ra FirstChild.nodeValue nhanh hơn đáng kể. Ít nhất đó là những gì tôi diễn giải nó có nghĩa.
Nếu FirstChild.nodeValue nhanh hơn rất nhiều, thì sao? Có phải nó không được hỗ trợ rộng rãi? Có một số vấn đề khác?
nodeValue
cũng không phân tích html