質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1124閲覧

動的に生成された要素をグループ分けしたい

yuzuki-chan

総合スコア8

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/05/22 07:02

編集2018/05/22 07:49

前提・実現したいこと

PHPで動的に生成されたdivとulの親要素をjQueryで生成したいです。

該当のソースコード

●処理前

HTML

1 <div> 2 <div class="group_name">グループ1</div> 3 <ul class="list"> 4 <li>リスト1</li> 5 <li>リスト2</li> 6 </ul> 7 <div class="group_name">グループ2</div> 8 <ul class="list"> 9 <li>リスト1</li> 10 <li>リスト2</li> 11 </ul> 12 (上記を繰り返し) 13 </div>

上記のものを下記のようにグループ分けするjQueryを書きたいです。

●処理後

HTML

1 <div> 2 <div class="group1"> 3 <div class="group_name">グループ1</div> 4 <ul class="list"> 5 <li>リスト1</li> 6 <li>リスト2</li> 7 </ul> 8 </div> 9 <div class="group2"> 10 <div class="group_name">グループ2</div> 11 <ul class="list"> 12 <li>リスト1</li> 13 <li>リスト2</li> 14 </ul> 15 </div> 16 (上記を繰り返し) 17 </div>

試したこと

javascript

1$(function(){ 2 //divとulそれぞれにidを追加 3 $('.group_name , .list').each(function(i){ 4 $(this).attr('id','child' + (i+1)); 5 }); 6 //id指定で要素をつつみこむ(ここ、規則性あるけど別の書き方はできないのでしょうか?) 7 $("#child1,#child2").wrapAll('<div id="group1" />'); 8 $("#child3,#child4").wrapAll('<div id="group2" />'); 9   ・・・ 10});

↓実行結果

HTML

1 <div> 2 <div class="group1"> 3 <div class="group_name" id="child1">グループ1</div> 4 <ul class="list" id="child2"> 5 <li>リスト1</li> 6 <li>リスト2</li> 7 </ul> 8 </div> 9 <div class="group2"> 10 <div class="group_name" id="child3">グループ2</div> 11 <ul class="list" id="child4"> 12 <li>リスト1</li> 13 <li>リスト2</li> 14 </ul> 15 </div> 16 (上記を繰り返し) 17 </div>

上記の方法で一応形にはなるのですが、

・wrapAll()の部分は規則性があるのに手打ち(別の書き方はないのか?)
・そもそも子要素1つ1つにidを与えなくてもいい書き方はないのか?

以上のような疑問を抱いています。
不慣れなもので拙い部分もあるかと思いますが、ご回答いただけると嬉しいです!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/05/22 07:04

ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
yuzuki-chan

2018/05/22 07:15

なるほど、ありがとうございます!
guest

回答2

0

JavaScript

1 $('.group_name').each(function(index, element) { 2 var target = $(element); 3 target.add(target.next()).wrapAll($('<div></div>').attr('id', 'group' + (index + 1).toString())); 4 });

投稿2018/05/22 08:20

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんな感じですか?

javascript

1$(function(){ 2 $(".group_name+.list").each(function(x){ 3 $(this).prev(".group_name").wrap("<div class='group"+(x+1)+"'>"); 4 $(this).appendTo($(this).prev("div")); 5 }); 6});

投稿2018/05/22 08:20

yambejp

総合スコア114769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問