innerTextかnodeValueのどちらかを選択するにはどうすればよいですか?
質問
スパン要素内のテキストを変更する必要がある場合、どれを使用すればよいですか、またその違いは何ですか:
var spnDetailDisplay=document.getElementById('spnDetailDisplay');
spnDetailDisplay.innerText=sDetail;
または
var spnDetailDisplay=document.getElementById('spnDetailDisplay');
spnDetailDisplay.childNodes[0].nodeValue=sDetail;
解決
テキストコンテンツを持つ要素のために、彼らは同じです。 nodeValue
については、このMDCの記事を参照してください。
要素にはサブ要素、テキストだけを持っていない場合は、は、それは(通常)
ElemRef.childNodes[0]
としてアクセス一つの子ノードを有しています。このような正確な場合、ElemRef.innerText
のW3C Web標準と同等でElemRef.childNodes[0].nodeValue
ある。
他のヒント
- ノード値 標準推奨 W3C です。
- 内部テキスト は インターネットエクスプローラ 標準ではなく、具体的なものです。そして:
- の内容は返されません
<script>
そして<style>
. - スタイルを認識し、非表示の要素のテキストを返しません。
- CSS スタイルを意識すると、リフローがトリガーされます。
- の内容は返されません
ただし、2016 年 3 月の時点では、すべての主要ブラウザのバージョンで innerText がサポートされています。
一般的には似ていますが、最高のパフォーマンスが必要な場合は、 ノード値 使用すべきです。
パフォーマンス テストへのリンク: https://jsperf.com/read-innerhtml-vs-innertext-vs-nodevalue-vs-textcontent/13
所属していません StackOverflow