23

スパン要素内のテキストを変更する必要がある場合、どちらを使用する必要があり、違いは何ですか:

var spnDetailDisplay=document.getElementById('spnDetailDisplay');
spnDetailDisplay.innerText=sDetail;

また

 var spnDetailDisplay=document.getElementById('spnDetailDisplay');
 spnDetailDisplay.childNodes[0].nodeValue=sDetail;
4

2 に答える 2

17

テキスト コンテンツを持つ要素の場合、それらは同じです。については、この MDC の記事を参照してくださいnodeValue

この記事から:

要素にサブ要素がなくテキストのみの場合、(通常) としてアクセスされる 1 つの子ノードがありますElemRef.childNodes[0]。そのような正確なケースでは、に相当する W3C Web 標準ElemRef.innerTextは ですElemRef.childNodes[0].nodeValue

于 2009-11-19T00:32:49.877 に答える
4
  • nodeValueは W3C 標準推奨です。
  • innerTextInternet Explorer固有のものであり、標準ではありません。と:
    • <script>との内容を返しません<style>
    • スタイル認識は、非表示の要素のテキストを返しません。
    • CSS スタイルの認識、それはリフローをトリガーします。

ただし、2016 年 3 月現在、すべての主要なブラウザのバージョンで innerText がサポートされています。

一般に、それらは似ていますが、最高のパフォーマンスが必要な場合は、nodeValueを使用する必要があります。

パフォーマンス テストのリンク: https://jsperf.com/read-innerhtml-vs-innertext-vs-nodevalue-vs-textcontent/13

于 2015-09-02T01:42:19.483 に答える