勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

jQueryで対象の要素をまとめて親要素で囲む方法

   2023/10/27  jQuery JavaScript

あるシステムで出力されているHTMLタグを指定した親要素で囲みたいというケースがあった。jQueryのbefore / afterで無理やり囲めばいいのかと思いきやうまく動かない。調べたところそれ用のメソッドが用意されていたので使い方のメモ。

 

やりたいこと

以下の#span_1 / #span_2を<div id="test">というタグで囲みたい。

<div id="div_1">
    <span id="span_1">span_1</span>
    <span id="span_2">span_2</span>
</div>

<div id="div_2">
    <span id="span_3">span_3</span>
    <span id="span_4">span_4</span>
</div>

 

ダメなパターン

$('#span_1').before('<div id="test">');
$('#span_2').after('</div>');

無理やり感はあるもののこれで行けるかと思いきや以下のような出力となった。

<div id="div_1">
    <div id="test"></div>
    <span id="span_1">span_1</span>
    <span id="span_2">span_2</span>
</div>

<div id="div_2">
    <span id="span_3">span_3</span>
    <span id="span_4">span_4</span>
</div>

 

正しい方法

$('#span_1, #span_2').wrapAll('<div id="test"></div>');

リファレンスは以下になる。

http://semooh.jp/jquery/api/manipulation/wrapAll/html/

 - jQuery JavaScript

  関連記事

PHPとSQLiteでi-mobileのデータをグラフ化する方法
PHPとSQLiteでi-mobileのデータをグラフ化する方法

i-mobileでクリック保証のアフィリエイトだけど数値が並んでいるだけでグラフ ...

jQueryのloadメソッドでファイル(ページ)を呼び出す
jQueryのloadメソッドでファイル(ページ)を呼び出す

サイト内でヘッダーやフッター等共通のパーツはそれぞれ別ファイルに分けてPHPのi ...

formのtextareaに文字を入力した内容をリアルタイムプレビューする方法
formのtextareaに文字を入力した内容をリアルタイムプレビューする方法

textarea内に書いた内容をリアルタイムでプレビューする機能が必要になった。 ...

表示範囲を自由に変更可能な折れ線グラフが表示できるJSライブラリ amCharts の使用方法
表示範囲を自由に変更可能な折れ線グラフが表示できるJSライブラリ amCharts の使用方法

どこかのサイトを閲覧していた際に、恐らくはJavaScriptのライブラリで描写 ...

セレクトメニューにサジェスト機能をつける方法(select2)
セレクトメニューにサジェスト機能をつける方法(select2)

formのselectメニューで何文字が入力すると候補を絞って表示させるサジェス ...