クリックしたdiv要素を、p要素に書き換えたいです
div要素をクリックしたら、そのdiv要素のdata属性やclass、textなどはそのままに、「div」の部分を「p」に置き換えたいです。中のtextやclass、data属性の書き換え方法は調べるとたくさん見つかったのですが、divをpに変える方法がどうしても見つかりません。
書いたコード
//html <div data-sample="hoge" class="div-class">text</div> //jQuery $(document).on('click','.div-class',function(){ var i_am_div = $(this).clone(); //div要素をまるまるコピー。cloneが適切かわかっていません var i_am_p = i_am_div.replace('/div/u', 'p'); //正規表現で無理やりdivをpに書き換え $(this).after(i_am_p); //元のdiv要素のあとにpに変換したものを挿入 $(this).remove(); //元のdiv要素を削除=pに変換したものだけが残ることを期待 });
結果
期待していた結果は、以下の変化です。
クリック前:<div data-sample="hoge" class="div-class">text</div>
クリック後:<p data-sample="hoge" class="div-class">text</p>
しかし実際は、以下のエラーが返ってきました。
TypeError: i_am_div.replace is not a function at HTMLDivElement.
jQueryがまだよくわかっておらず、自身のコードのどこがいけないのか悩んでいます。
対象のdiv要素のdata属性やclass、textなどはそのままに、「div」の部分を「p」に置き換える方法をご存じの方がいらっしゃいましたら、どうかご教授いただけましたら幸甚に存じます。
何卒、よろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/11 12:59