商品サンプル画像
グッドスマイルカンパニー[GOOD SMILE COMPANY] POP UP PARADE 劇場版『チェンソーマン レゼ篇』 ボム ノンスケール プラスチック製 塗装済み完成品
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
アシュリー、魔法はよいこになってから!(全3巻)
商品ページ
Amazon
非収益広告(手動登録)
サクラ度:○(問題なし)
商品サンプル画像
タカラトミー(TAKARA TOMY) デュエル・マスターズ DXカードスリーブ 剣轟の団長 ドギラゴン王道
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
司法試験&予備試験 体系別 短答過去問題集 刑法 第3版 司法試験&予備試験 体系別短答過去問題集シリーズ
商品ページ
Amazon
収益広告(手動登録)
サクラ度:○(問題なし)
商品サンプル画像
ホットウィール(Hot Wheels) ブールバード 日産 ローレル C33 乗り物おもちゃ ミニカー 3歳から ブラック JBL10
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
記事の概要
htmlタグ混在のテキストをhtmlタグとプレーンテキストで分けるJavaScriptコード
作成日:2025-06-20
最終更新日:2025-06-20
記事の文字数:2162
本記事のトピック
  • 概要
  • JavaScriptコード
htmlタグ混在のテキストをhtmlタグとプレーンテキストで分けるJavaScriptコード
概要

「よくある質問は<a href="/">こ<span>ち</span>ら</a>です」 というようなhtmlタグ混在のテキストを、htmlタグとプレーンテキストごとに分けるJavaScriptコードです。

「よくある質問は<a href="/">こ<span>ち</span>ら</a>です」 であれば、以下のような出力になります。

const htmlText = よくある質問は<a href="/">こ<span>ち</span>ら</a>です; const separatedHtmlText = separateHtmlText(htmlText); console.log(separatedHtmlText); //[ // { // "htmlText": "よくある質問は", // "type": "text", // "tag": null // }, { // "htmlText": "<a href=\"/\">", // "type": "tagOpen", // "tag": "a" // }, { // "htmlText": "こ", // "type": "text", // "tag": null // }, { // "htmlText": "<span>", // "type": "tagOpen", // "tag": "span" // }, { // "htmlText": "ち", // "type": "text", // "tag": null // }, { // "htmlText": "</span>", // "type": "tagClose", // "tag": "span" // }, { // "htmlText": "ら", // "type": "text", // "tag": null // }, { // "htmlText": "</a>", // "type": "tagClose", // "tag": "a" // }, { // "htmlText": "です", // "type": "text", // "tag": null // } //]
JavaScriptコード

実際のJavaScriptコードは以下です。

function separateHtmlText(htmlText){ const htmlTextElm = new DOMParser().parseFromString(htmlText, 'text/html').body; const results = separateNode(htmlTextElm); return(results); } function separateNode(nodes){ const results = []; for (const child of nodes.childNodes) { if (child.nodeType === Node.TEXT_NODE) { // プレーンテキスト results.push(createSeparateObj(child.textContent, 'text')); } else if (child.nodeType === Node.ELEMENT_NODE) { // タグ開始 const tagName = child.tagName.toLowerCase(); const tagAttrs = [...child.attributes].map(attr => `${attr.name}="${attr.value}"`).join(' '); const tagOpen = `<${tagName}${tagAttrs ? ' ' + tagAttrs : ''}>`; const tagClose = ``; results.push(createSeparateObj(tagOpen, 'tagOpen', tagName)); const r = separateNode(child); results.push(...r); results.push(createSeparateObj(tagClose, 'tagClose', tagName)); } } return results; function createSeparateObj(htmlText, type, tag = null){ const result = { text: htmlText, type: type, tag: tag, }; return result; } }

上にも書いてありますが、基本的な使い方は以下です。

const htmlText = よくある質問は<a href="/">こ<span>ち</span>ら</a>です; const separatedHtmlText = separateHtmlText(htmlText);

文字列ではなく、html要素自体を渡したい場合は以下で動くはずです。

const targetElm = document.getElementById('targetElmId') const separatedHtmlText = separateNode(targetElm);
コメントログ
※コメントは最新50件が表示されます
コメント投稿




画面下部の「コンタクト」からも連絡可能です。
管理人ツイート
商品サンプル画像
TAMASHII NATIONS S.H.フィギュアーツ ONE PIECE トニートニー・チョッパー -ドラム島- 約75mm PVC&ABS製 塗装済み可動フィギュア
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
カミ307333 ディズニーキャラクター プチドロップシールスタンダード ズートピア アニメ 映画 ステッカー プチ ミニ デコ
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
D.C. Re:tune~ダ・カーポ~ リチューン 限定版<さくらEdition> -Switch 【Amazon.co.jp限定】 オリジナルPC&スマホ壁紙 配信 限定版特典・ヴァイスシュヴァルツPRカード(4種) 同梱
商品ページ
Amazon
非収益広告(手動登録)
サクラ度:○(問題なし)
商品サンプル画像
ハート(Heart) ちょこぶろっくしーるたまごっち アップルソーダ味 ガム/食玩 [BOX販売/8個セット]
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
管理人作品宣伝
ChatGPT-アイコンと名前変更
Chrome 拡張機能 / 最終更新:2025-05-29
ChatGPTのアイコン等を自分の好みに変えられます。好きなキャラと話しているような気…ChatGPTのアイコン等を自分の好みに変えられます。好きなキャラと話しているような気分になれるかもしれません。

ChromeWebストアで閲覧する利用素材等の詳細情報
【アークナイツ】アークナイツ-必要素材数集計ツール
Webサイト / 最終更新:2025-02-02
【一部機能返礼特典】『アークナイツ』の育成状況を記録し、育成に必要な素材数を集計するペ…【一部機能返礼特典】『アークナイツ』の育成状況を記録し、育成に必要な素材数を集計するページです。オペレータの実装スケジュールや所持率チェッカーの機能も持ち合わせています。 以下機能は返礼特典としています。 ・アークナイツ-必要素材数集計ページ:DB登録データ出力ページ ・アークナイツ-必要素材数集計ページ:オペレータ一覧ページ(昇進0→2に必要な理性換算値ランキング) ・アークナイツ-必要素材数集計ページ:オペレータ一覧ページ(スキル特化に必要な理性換算値ランキング)

HPで閲覧する利用素材等の詳細情報返礼特典
作品一覧はこちら
関連ページ
本サイトのタグ一覧
NovelAIR18VRoidWebサイト作成Webツールととモノ。アークナイツアークナイツ-ステージ攻略日記アズールレーンアズールレーン-日記ウマ娘ギャラリーゲームデビラビローグネットスラング系プログラミングホラーポケットタウン怪談気ままな日記情報技術情報技術-WebAPI知的財産権統合戦略白夜極光本サイトについて魔王スライム様がんばる!漫画
人気記事
剣と魔法と学園モノ。3 前作からの変更点
最終更新日:2025-10-12
スコア:875.6757 pt
概要 もうそろそろ「ととモノ。3」のリマスターが出るので、自分自身のための振り返りと言う意味も込め…
記事を閲覧する
ポケットタウン_パズル一覧
最終更新日:2025-05-02
スコア:792.0000 pt
グレーのピースの数 (Number of gray pieces):検索グレーピースの数を入力して、…
記事を閲覧する
剣と魔法と学園モノ。2G - パーティ編成確認ツール
最終更新日:2024-05-09
スコア:560.4848 pt
ツール概要 ととモノ。2Gのパーティ編成を考える際に使うツールです。 あくまでストーリークリアまで…
記事を閲覧する
メイド・オブ・ザ・デッド-攻略お助け情報
最終更新日:2024-05-01
スコア:465.8898 pt
ネタバレ注意! 本ページは『メイド・オブ・ザ・デッド』の情報を記録しているものです。 攻略の参考に…
記事を閲覧する
ととモノ。3:各学科の強みを一覧化
最終更新日:2025-10-12
スコア:359.1250 pt
このページのポイントどの学科が良いかすぐに分かる各学科のどのような点が良いか分かる各役割で欲しいスキ…
記事を閲覧する
剣と魔法と学園モノ。3 - パーティ編成確認ツール
最終更新日:2025-09-23
スコア:356.4721 pt
ツール概要 ととモノ。3のパーティ編成を考える際に使うツールです。 攻略本や攻略wikiを参考にし…
記事を閲覧する
アークナイツ:生息演算「熱砂秘聞」の攻略メモ
最終更新日:2025-01-13
スコア:313.9811 pt
注意 本ページには攻略情報も一部含まれてるので、そういうのを見たくない人は見ない方が良いです。含ま…
記事を閲覧する
ヒカルの碁で、なぜ佐為は消えたのか
最終更新日:2025-04-21
スコア:163.0573 pt
概要 ヒカルの碁で佐為が消えた理由について、「ヒカルの才能を目覚めさせるという役割を終えたから」と…
記事を閲覧する
最新記事
ととモノ。3:各学科の強みを一覧化
最終更新日:2025-10-12
このページのポイントどの学科が良いかすぐに分かる各学科のどのような点が良いか分かる各役割で欲しいスキ…
記事を閲覧する
剣と魔法と学園モノ。3 前作からの変更点
最終更新日:2025-10-12
概要 もうそろそろ「ととモノ。3」のリマスターが出るので、自分自身のための振り返りと言う意味も込め…
記事を閲覧する
逆転裁判1:真犯人まとめと悪質度
最終更新日:2025-09-30
概要 逆転裁判1(蘇る込み)に出てくる犯人たちを、やったことや動機なんかを整理して「悪質度」を点数…
記事を閲覧する
剣と魔法と学園モノ。3 - パーティ編成確認ツール
最終更新日:2025-09-23
ツール概要 ととモノ。3のパーティ編成を考える際に使うツールです。 攻略本や攻略wikiを参考にし…
記事を閲覧する
商品サンプル画像
【Amazon.co.jp 限定】ホットウィール(Hot Wheels) チェイスカーガチャ 第二弾 プレミアムカー5台とオリジナルステッカー特別セット 1/25でチェイスカー入り 1000セット限定 乗り物おもちゃ ミニカー 3歳から マルチ HW
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)