【jQuery】prependTo()で要素を対象要素の先頭に追加する!

エンジニアに特化した転職エージェント!

・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方

それなら、キッカケエージェントにご相談!

キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!

また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!

転職エージェントに迷っている方、まずは無料でキャリア相談から!




(この記事は2023年10月12日に投稿されました。)

jQueryで対象要素の一番上に要素を追加する方法としてprependTo()があります。

prependTo()とは要素を対象要素の先頭に追加するメソッドになります。

そのため、指定した要素を対象要素の内の一番上に差し込むような形になります。

また、prependTo()はセレクタに既存の要素を指定することで、対象要素の先頭に移動することもできます。

そして、prependTo()とよく似たprepend()というメソッドがありますが、使い方に違いがありますので注意して使用するようにしましょう。

今回はjQueryのprependTo()で要素を対象要素の先頭に追加する方法について紹介していきます。

この記事はこんな方におすすめ

要素を対象要素の一番上に追加したい場合

prependTo()とは

prependTo()とは要素を対象の要素内の先頭に追加するメソッドになります。

そのため、

prependTo()の書き方

prependTo()の書き方は下記のようになります。

セレクタの後ろにprependTo()と追記し、必須の引数を1つ指定して使用します。

prependTo()の引数

prependTo()の引数は下記のようになります。

  1. 対象要素:(必須)
    先頭に追加する対象要素のセレクタを指定する
    (テキストやオブジェクトでも可能)

prependTo()は必須な引数として「対象要素」を指定します。

prependTo()の返り値

prependTo()の返り値は追加した要素のjQueryオブジェクトとなります。

prependTo()で要素を対象要素の先頭に追加するサンプルコード

prependTo()で要素を対象要素の先頭に追加するサンプルコードをご紹介します。

ここでは下記の3パターンでprependTo()を使用します。

  1. 対象要素が存在する場合
  2. 対象要素が複数存在する場合
  3. 対象要素が存在しない場合

対象要素が存在する場合

対象要素が存在する場合にprependTo()を使用すると、対象要素の先頭に要素を追加します。

● index.html

● style.css

● main.js

実行結果

対象要素が存在する場合にprependTo()を使用した結果

prependTo()で要素を対象の要素内の先頭に追加しています。

そのため、「追加」ボタンをクリックすると「preTo」と書かれた要素が対象要素の上に表示されています。

また、ソースコードを見ると「obj-preto」クラス要素が「obj」クラス要素の先頭に追加されています。

対象要素が複数存在する場合

対象要素が複数存在する場合にprependTo()を使用すると、マッチした全ての対象要素の先頭に要素を挿入します。

● index.html

● style.css

● main.js

実行結果

対象要素が複数存在する場合にprependTo()を使用した結果

prependTo()で要素を対象要素の先頭に追加しています。

そのため、「追加」ボタンをクリックすると「preTo」と書かれた要素が対象要素たちの下に表示されています。

また、ソースコードを見ると「obj-preto」クラス要素が「obj」クラス要素たちの先頭に追加されています。

対象要素が存在しない場合

対象要素が存在しない場合にprependTo()を使用すると、要素の追加は行われません。

● index.html

● style.css

● main.js

実行結果

対象要素が存在しない場合にprependTo()を使用した結果

prependTo()で要素を対象要素の先頭に追加しています。

対象要素が存在しないため、今回は「追加」ボタンをクリックしても何も起きません。

また、ソースコードを見ると何も変化が起きていません。

prependTo()で既存の要素を対象要素の先頭に追加する場合

prependTo()で既存の要素を対象要素の先頭に追加するには、セレクタに「既存要素」を指定します。

そのため、既存の要素が対象要素の先頭に移動するようになります。

● index.html

● style.css

● main.js

実行結果

prependTo()で既存の要素を対象要素の先頭に追加した結果

prependTo()で既存の要素を対象要素の先頭に追加しています。

そのため、「追加」ボタンをクリックすると「obj」と書かれた要素が対象要素の上に表示されています。

また、ソースコードを見ると「obj3」クラス要素が「obj」クラス要素の先頭に追加されています。

prependTo()で要素を特定の対象要素の先頭に追加する場合

prependTo()で要素を特定の対象要素の先頭に追加するには、eq()を使用します。

eq()とはマッチしたセレクタをインデックスで指定することができるメソッドになります。

そのため、マッチした対象要素にeq()を使用することで、特定の対象要素の先頭のみに追加することができます。

● index.html

● style.css

● main.js

実行結果

prependTo()で要素を特定の対象要素の先頭のみに追加した結果

prependTo()とeq()で要素を特定の対象要素の先頭に追加しています。

そのため、「追加」ボタンをクリックすると特定の「appTo」と書かれた要素が特定の対象要素の下に表示されています。

また、ソースコードを見ると「obj-appTo」クラス要素が2番目にマッチした「obj」クラス要素の先頭に追加されています。

もし、eq()について詳しく知りたい場合は下記の記事をご参照ください。

prependTo()を使用した実際のケース

prependTo()を使用した実際のケースをご紹介します。

例えば、prependTo()を使用してオーバーレイのメニューの項目が右から差し込まれるコードを作成します。

● index.html

● style.css

● main.js

実行結果

prependTo()を使用してオーバーレイのメニューの項目が右から差し込まれるコードを作成した結果

prependTo()でオーバーレイのメニューの項目が右から差し込まれるコードを作成しています。

今回はオーバーレイを行った際にprependTo()でメニューの項目をスライドアニメーションで追加するようにしています。

そのため、「+」ボタンをクリックすると、赤色の背景が表示され、右からメニューが割り込んで表示されています。

prependTo()とprepend()の違い

jQueryでは対象要素の先頭にノードを挿入することができるprepend()というprependTo()とよく似たメソッドがあります。

対象要素の先頭に追加することから同じメソッドのように思えますが、両メソッドには違いがあるため、使用する際には注意が必要です。

そのため、ここではprependTo()とprepend()の違いについてご紹介します。

もし、prepend()について先に知りたい場合は下記の記事をご参照ください。

Sossy

prependTo()とprepend()は類似したメソッドになりますが、使用する際に違いがあるので、
引数とセレクタの指定が逆であるという認識で使用しないようにしましょう。

引数が異なる

1つ目の違いは引数が異なるということです。

prependTo()は「対象の要素」が引数となりますが、prepend()は「挿入するノード」が引数となります。

● index.html

● style.css

● main.js

実行結果

prependTo()とprepend()の違いの結果

prependTo()とprepend()で要素を対象要素の先頭に追加しています。

そのため、「結果」ボタンをクリックすると「obj1」と書かれた要素には「preTo」と書かれた要素が、「obj2」と書かれた要素には「pre」と書かれた要素が表示されています。

また、ソースコードを見ると「preTo」クラス要素が「obj1」クラス要素の先頭に追加され、「pre」クラス要素が「obj2」クラス要素の先頭に追加されています。

Sossy

「BにAを追加する」というprependTo()のイメージに対して、prepend()は「AにBを挿入する」というイメージになります。

テキストを追加できない

2つ目の違いはテキストを追加できないということです。

prependTo()は要素は追加できますが、テキストを追加することができません。

しかし、prepend()の引数は要素だけでなくテキストも追加することができます。

● index.html

● style.css

● main.js

実行結果

テキストを追加する場合のprependTo()とprepend()の違いの結果

prependTo()とprepend()でテキストを対象要素の先頭に追加しています。

そのため、「結果」ボタンをクリックすると「obj1」と書かれた要素には何も起こっていませんが、「obj2」と書かれた要素には「テキストを追加」と書かれたテキストが表示されています。

また、ソースコードを見ると「テキストを追加」というテキストが「obj1」クラス要素の先頭に追加されていませんが、「obj2」クラス要素の先頭に追加されています。

複数の要素を追加できない

3つ目の違いは複数の要素を追加できないということです。

prependTo()は追加する要素がセレクタとなるため、複数要素の指定ができません。

しかし、prependTo()は挿入する要素が引数となるため、カンマで区切ることで複数の要素を追加することができます。

● index.html

● style.css

● main.js

実行結果

要素を複数追加する場合のprependTo()とprepend()の違いの結果

prependTo()とprepend()で複数の要素を対象要素の先頭に追加しています。

そのため、「結果」ボタンをクリックすると「obj1」と書かれた要素には「preTo」と書かれた要素が1つ表示され、「obj2」と書かれた要素には「pre」と書かれた要素が2つ表示されています。

また、ソースコードを見ると「preTo-1」クラス要素が「obj1」クラス要素の先頭に追加され、「preTo-1」と「preTo-2」クラス要素が「obj2」クラス要素の先頭に追加されています。

Sossy

prepend()は引数をカンマで区切ることで複数の要素を追加することができますが、
prependTo()の場合はセレクタをカンマで区切ることができないため、複数の要素を追加することができません。

JavaScriptで対象要素の先頭に要素を追加する場合

JavaScriptで要素を対象要素の先頭に追加するには、insertBefore()を使用します。

insertBefore()とは指定したセレクタの子ノードを操作するプロパティになります。

そのためinsertBefore()を使用することで、対象要素の先頭に要素を挿入することができます。

● index.html

● style.css

● main.js

実行結果

insertBefore()要素を対象要素の先頭に追加した結果

insertBefore()で要素を対象要素の先頭に追加しています。

そのため、「追加」ボタンをクリックすると「pre」と書かれた要素が「obj」と書かれた要素に表示されています。

また、ソースコードを見ると「pre」クラス要素が「obj」クラス要素の先頭に追加されています。

もし、insertBefore()について詳しく知りたい場合は下記の記事をご参考下さい。

要素を対象要素の末尾に追加する場合

要素を対象要素の末尾に追加するにはappendTo()を使用します。

appendTo()は、要素を対象要素の先頭に追加するメソッドになります。

そのため、今回のprependTo()とは、対になるメソッドになります。

● index.html

● style.css

● main.js

実行結果

appendTo()で要素を対象要素の末尾に追加した結果

appendTo()で要素を対象要素の先頭に追加しています。

そのため、「追加」ボタンをクリックすると「preTo」と書かれた要素が「obj」と書かれた要素に表示されています。

また、ソースコードを見ると「obj-preto」クラス要素が「obj」クラス要素の中の一番上に追加されています。

もし、appendTo()について詳しく知りたい場合は下記の記事をご参考下さい。

まとめ

⚫︎ prependTo()とは要素を対象要素の先頭に追加するメソッドである。

⚫︎ prependTo()は下記の引数を指定して使用する
・対象の要素(必須)

⚫︎ 対象要素が存在する場合にprependTo()を使用すると、指定した要素を対象要素の先頭に追加する。

⚫︎ 対象要素が複数存在する場合にprependTo()を使用すると、指定した要素を対象要素全ての先頭に追加する。

⚫︎ 対象要素が存在しない場合にprependTo()を使用すると、要素の追加は行われない。

⚫︎ セレクタに既存の要素を指定してprependTo()を使用すると、既存要素を対象要素の先頭に移動することができる。

⚫︎ prependTo()で要素を特定した対象要素の先頭に追加するにはeq()を組み合わせて使用する。

⚫︎ prependTo()とprepend()には下記のような違いがある
・引数が異なる。
・テキストを追加することができない。
・複数の要素を追加することができない。

⚫︎ Javascriptで要素を対象要素の先頭に追加するにはinsertBefore()を使用する。

⚫︎ 要素を対象要素の末尾に追加するにはappendTo()を使用する。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です