【JavaScript】textContentで取得した文字列の改行について
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、JavaScriptのtextContentで取得した文字列の改行の扱いについてご紹介したいと思います。
textContentで取得した文字列に改行が含まれないのはなんでだろう?
上記の疑問にお答えします。
では、解説していきます。textContentはテキストのみを返すプロパティ
textContent
は、Nodeのプロパティです。ノードの内側に存在するテキストを返します。返り値はテキストのみ(Node.nodeValue)であり、HTMLタグや改行コードは含まれません。
下記の実行結果を確認してみます。
<!-- HTML --> <p>ダミーテキスト<span>ダミーテキスト</span>ダミーテキスト<br>ダミーテキスト</p> <!-- JavaScript --> <script> const str = document.querySelector('p'); console.log(str.textContent); </script>
コンソールの出力結果は下記の通りです。
"ダミーテキストダミーテキストダミーテキストダミーテキスト"
p要素
内のHTMLタグは改行は削除され、テキストのみが出力されています。textContent
の返り値には、HTMLタグや改行が含まれず、テキストのみであることが確認できました。
改行を含む文字列を取得したい場合はどうするべきか
改行を含む文字列を取得したい場合はinnerText
を、HTMLタグも含む文字列が必要な場合はinnerHTML
を使用します。
innerText
innerText
は、Elementのプロパティです。指定した要素内に存在するレンダリングされているテキストを取得します。
<!-- HTML --> <p>ダミーテキスト<span>ダミーテキスト</span>ダミーテキスト<br>ダミーテキスト</p> <p>ダミーテキスト<span style="display: none;">ダミーテキストダミーテキストダミーテキスト</span></p> <!-- JavaScript --> <script> const elements = document.querySelectorAll('p'); elements.forEach((element)=>{ console.log(element.innerText); }); </script>
実行結果は下記の通りです。
"ダミーテキストダミーテキストダミーテキスト ダミーテキスト" "ダミーテキスト"
改行は含まれていますが、レンダリングされていない要素のテキスト(style属性で非表示にした要素内のテキスト)は出力されていません。innerText
を使用する場合は、この点ご注意ください。
innerHTML
innerHTML
は、Elementのプロパティです。指定した要素内のHTMLを取得もしくは設定することができます。プロパティ名にある通り、要素内のHTMLをまるっと取得したり設定することができます。
<!-- HTML --> <p>ダミーテキスト<span>ダミーテキスト</span>ダミーテキスト<br>ダミーテキスト</p> <p>ダミーテキスト<span style="display: none;">ダミーテキストダミーテキストダミーテキスト</span></p> <!-- JavaScript --> <script> const elements = document.querySelectorAll('p'); elements.forEach((element)=>{ console.log(element.innerHTML); }); </script>
実行結果は下記の通りです。
"ダミーテキスト<span>ダミーテキスト</span>ダミーテキスト<br>ダミーテキスト" "ダミーテキスト<span style='display: none;'>ダミーテキストダミーテキストダミーテキスト</span>"
HTMLタグを含む文字列を取得しています。HTMLタグを含む文字列が必要な場合はinnerHTMLをご使用ください。
最後に
textContentが純粋なテキストのみを取得するためのプロパティであることをたまに忘れてしまうため、半ば自分を戒めるために記事にまとめてみました。これで恐らく忘れることはないだろうなと思いますが、もし忘れた場合はサイト内を検索して本記事の内容を確認することにします!
以上、JavaScriptのtextContentで取得した文字列の改行の扱いについてのご紹介でした!
JavaScriptを基礎からしっかりと学びたい方へ
下記の参考書がおすすめです。私がJavaScript入門時に購入した書籍で、基礎から応用まで多様なサンプルを用いて解説されています。ページ数は多いですが、内容が伴っているのですらすら読めます。腰を据えて学びたい方に最良の一冊となっています。