重複の可能性:
DOMテキストノードのテキストを取得する方法は?
DOMミューテーションオブザーバーを処理するための私の実験では、target
がテキストノードである場合、ノードの新しいテキストをすべて含む4つのフィールドがあることに気付きました。
data
nodeValue
textContent
wholeText
これらのフィールドのどれを使用する必要があるかについての「ベストプラクティス」はありますか?
他のブラウザや古いDOM標準との互換性のためだけのものはありますか?私が読んでいるのか、テキストを変更しているのかで違いはありますか? 1つが最善である場合、他の目的は何ですか?
これらすべての中からdata
を選択します。これは CharacterData インターフェイス(- テキスト および コメント 1つ)のみ。他の人のためにこのプロパティにアクセスしようとすると、undefined
が得られます。
nodeValue は、基本的にテキストノードのdata
と同じですが、実際には属性ノードとコメントノードにも定義されています。そして、私は通常、プログラムを早期に失敗させたいと思っています。 )
textContent は、ノードとその子孫のテキストコンテンツを表すため、私にとってはまったく異なるものです。これは、 wholeText とともに、単一のテキストノードよりも複雑な構造からテキストを収集するために使用する必要があります。
とはいえ、textContent
とwholeText
はDOMレベル3(=より現代的)で定義されました。