我使用普通的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.
Run Code Online (Sandbox Code Playgroud)
我查看了jQuery源代码,它使用了nodeValue一次,但是innerHTML和textContent几次.然后我发现这个jsperf测试表明firstChild.nodeValue明显更快.至少这就是我所说的意思.
如果firstChild.nodeValue快得多,那捕获的是什么?它没有得到广泛支持吗?还有其他问题吗?
我有一个由Javascript填充的下拉列表.
在确定应该在加载时显示的默认值时,我意识到以下属性显示完全相同的值:
innerTextinnerHtmllabeltexttextContentouterText我自己的研究显示了基准测试或其中几个测试之间的比较,但不是全部.
我可以使用我自己的常识并选择1或其他因为它们提供相同的结果,但是,我担心如果数据要改变,这不是一个好主意.
我的发现是:
innerText 将按原样显示该值,并忽略可能包含的任何HTML格式innerHTML 将显示该值并应用任何HTML格式label看来是一样的innerText,我看不出差别text似乎innerText与jQuery简写版本相同textContent看起来像是一样innerText但保持格式化(例如\n)outerText 似乎是一样的 innerText我的研究只能采取我太厉害,我只能考什么我能想到的或读到的东西发布后,任何一个可以确认但如果我的研究是正确的,如果有什么特别的label和outerText?