最佳答案
我使用纯 js 来修改 label 元素的内部文本,我不确定应该基于什么理由使用 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 要快得多,有什么问题吗? 它没有得到广泛支持吗? 还有其他问题吗?