Text: wholeText プロパティ

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

wholeTextText インターフェイスのプロパティで、そのノードに論理的に隣接するすべての Text ノードのすべてのテキストを返すものです。 テキストは文書中の順序で連結されます。 これにより、任意のテキストノードを指定し、隣接するすべてのテキストを 1 つの文字列として取得することができます。

メモ: これは Node.normalize() を呼び出してそのテキストノードの値を読み取るのに似ていますが、ツリーを変更することはありません。

接続されたテキストの文字列です。

ウェブページに次のような簡単な段落があったとします。

html
<p>
  Through-hiking is great!
  <strong>No insipid election coverage!</strong> However,
  <a href="https://en.wikipedia.org/wiki/Absentee_ballot">casting a ballot</a>
  is tricky.
</p>

中央の文章が気に入らないと判断し、削除します。

js
const paragraph = document.querySelector("p"); // 段落を読み取る
paragraph.removeChild(para.childNodes[1]); // strong のテキストを削除

これで "Through-hiking is great! However, casting a ballot is tricky." となり、ハイパーリンクの前はノード 2 つになります。

  1. Text で、"Through-hiking is great!" という文字列を含むもの
  2. 2 番目の Text ノードで、" However, " という文字列を含むもの

これらの 2 つのノードを一度に取得するには、 para.childNodes[0].wholeText を呼び出します。

js
console.log(`'${paragraph.childNodes[0].wholeText}'`); // 'Through-hiking is great!   However, '

仕様書

Specification
DOM Standard
# ref-for-dom-text-wholetext①

ブラウザーの互換性

BCD tables only load in the browser

関連情報

  • 所属先の Text インターフェイス