nodeValue vs innerHTML and textContent. How to choose? nodeValue与innerHTML和textContent的区别。如何选择?

8 浏览
0 Comments

nodeValue vs innerHTML and textContent. How to choose? nodeValue与innerHTML和textContent的区别。如何选择?

我正在使用纯js来修改标签元素的内部文本,但我不确定应该使用innerHTML还是nodeValue或者textContent。我不需要创建新的节点或更改HTML元素,只是替换文本。下面是代码示例:

var myLabel = document.getElementById("#someLabel");
myLabel.innerHTML = "一些新的标签文本!"; // 这个方法可行
myLabel.firstChild.nodeValue = "一些新的标签文本!"; // 这个方法也可行
myLabel.textContent = "一些新的标签文本!"; // 这个方法也可行

我查看了jQuery源码,它只在一个地方使用了nodeValue,但多次使用了innerHTML和textContent。然后我找到了这个jsperf测试,它表明firstChild.nodeValue的速度要快得多。至少我是这样解释的。

如果firstChild.nodeValue如此快,有什么缺点吗?它是否被广泛支持?是否存在其他问题?

0