Serviceを読んで理解し、同意したものとみなします。/#\d+/)に該当する文字列をタグで囲み、イベントハンドラを設定したいと考えています。マウスカーソルを乗せると、対応するIssueの詳細がポップアップされる、といったものです。対して置換を行うものです。href=".../${id}">${s}</a>`);単純なリンクに置き換えるだけならこれでもいいのですが、設定する属性やイベントハンドラが多くなってくるとタグに記載するのは面倒ですし、読みにくくなってしまいます。いってこの時点では文字列なので、Elementオブジェクトにはアクセスできません。属性等を使うのも避けたいです(対象ページでの使用箇所と競合する可能性があるので)。使えたので、今回もマッチ範囲をRangeで取得する、なんてことができれば簡単そうなのですが...。使用する事で文字列「"#123"」を含むテキストノードを得る事が可能です。利用して対応させます(詳細は後述の参考リンクを参照)。08:00追記)すみません。質問内容を誤解していました。文で回す」方法が考えられます。個の銅バッジ回答ありがとうございます。rio.irikamiさんの回答と比べると、テキストノードの抽出をXPathで行っているのと、分割・置換のやり方が変わっているのですね。追記いただいたように、今回はこのまま採用するのは難しいですが、パターンに含まれるキーワードを含むノードをXPathでざっくり抽出して、後で正規表現に厳密にチェックする、というのは悪くないかもしれません。|1DOMはDOMオブジェクトで表現されていないものに対する操作がとても苦手です。いうかほぼできません。逆に言えばDOMに落とし込めれば操作可能になります。TEXT_NODEのNodeオブジェクト、いわゆるtextNodeとして構成されますが、このオブジェクトは任意長の部分文字列に分割することが可能です(子要素にtextNodeがいくつあってもよい/最初のtextNodeが.textContentに一致するわけではない)。今回のアプローチではまず対象となる文字列を部分文字列のtextNodeに分割します。false)ので、ふつうのDOM要素(HTMLElement)とは異なりイベントを登録できません。これを解決するために、質問内容でいうところの「HTML要素に置き換える」操作が解決方法になるわけです。以下、サンプルコードでは部分文字列の生成と置換を同時に行っています。関数__replaceTextNodesは置換した要素への参照配列をかえしますので、その後のアプリケーションでイベントハンドラの登録等に利用できます。全体としてはRange.prototype.surroundContents()のpolyfillのような印象になりました。penatibus.</li></ul>期待した動作ではない、バグがある、その他不明な点についてはコメントをお願いします。参考:innerHTMLプロパティの変更によるDOMの操作は極めて高コストかつリスクが高いことを認識しておいてください。個人的な意見としては何が何でも使わないと実現できない場合のみ使用するものとし、リフレクション目的以外では使用禁止にしたいぐらいです。次の例では何の変更もしていないようで、body以下すべての要素が置換されています。個の銅バッジ回答ありがとうございます。ように、マッチする文字列が連続すると前半しか処理されないようです。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。よる画面遷移が出来ない1一度だけ呼び出されるイベントハンドラを設定するには?0親要素のイベントハンドラを先に発動させたい0イベントリスナーについて。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。