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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

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

Q&A

解決済

1回答

968閲覧

IDを指定してフォームを削除する機能をつけたい

jsrookie

総合スコア24

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

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

0グッド

1クリップ

投稿2019/06/13 23:08

やりたいこと

JavaScript、jQuery勉強中の初心者です。
ボタンを押すとフォームが追加され、フォームに入力された内容を自動でページの下に表示するようにしています。
追加するごとにフォームのIDは#0,#1,#2,...のように与えています。
今あるものにフォームの削除機能を搭載し、削除された分のIDを詰めるようにしたいです。
ご教授お願いします。

目指している形

例1:削除するID、フォームを指定し、削除ボタンを押すことで削除できる [フォーム追加ボタン] [削除ボタン] [ a ][ b ][ c ] ←フォーム(ID#0) [ d ][ e ][ f ] ←フォーム(ID#1) [ g ][ h ][ i ] ←フォーム(ID#2) a b c ←フォーム(ID#0)の中身 d e f ←フォーム(ID#1)の中身 g h i ←フォーム(ID#2)の中身 仮に#1を削除した場合、↓の様に#1の穴を詰めて#2が#1になる [フォーム追加ボタン] [削除ボタン] [ a ][ b ][ c ] ←フォーム(ID#0) [ g ][ h ][ i ] ←フォーム(ID#1) a b c ←フォーム(ID#0)の中身 g h i ←フォーム(ID#1)の中身
例2:フォームを追加するとそのフォームの隣に削除ボタンがあり、押すことでそのIDのフォームを削除し、例1のようにIDの穴を詰める フォーム追加ボタン [ a ][ b ][ c ] [削除] ←フォーム(ID#0) [ d ][ e ][ f ] [削除] ←フォーム(ID#1) [ g ][ h ][ i ] [削除] ←フォーム(ID#2) a b c ←フォーム(ID#0)の中身 d e f ←フォーム(ID#1)の中身 g h i ←フォーム(ID#2)の中身

できれば例1のようにやりたいです。

該当のソースコード

<script src="jquery.js"></script> <script> $(function(){ $('#btn').on('click',function(){ var div_element = $('<div>').html('<p><form id="n" name="f"><input type="text" size="10" name="a" value="a"></form></p>'); $('#add').append(div_element); var result=$('form').attr('id',function(){return $('form').index(this);}); console.log(result); $("#out").empty(); $(document).find('form[id] input:eq(0)').trigger('change'); }); $('#btn2').on('click',function(){ var div_element = $('<div>').html('<p><form id="n" name="f"><input type="text" size="10" name="b" value="b"><input type="text" size="10" name="c" value="c"></form></p>'); $('#add').append(div_element); var result=$('form').attr('id',function(){return $('form').index(this);}); console.log(result); $("#out").empty(); $(document).find('form[id] input:eq(0)').trigger('change'); }); $('#btn3').on('click',function(){ var div_element = $('<div>').html('<p><form id="n" name="f"><input type="text" size="10" name="d" value="d"><input type="text" size="10" name="e" value="e"><input type="text" size="10" name="f" value="f"></form></p>'); $('#add').append(div_element); var result=$('form').attr('id',function(){return $('form').index(this);}); console.log(result); $("#out").empty(); $(document).find('form[id] input:eq(0)').trigger('change'); }); $('#btn4').on('click',function(){ var div_element = $('<div>').html('<p><form id="n" name="f"><input type="text" size="10" name="g" value="g"><input type="text" size="10" name="h" value="h"><input type="text" size="10" name="i" value="i"><input type="text" size="10" name="j" value="j"></form></p>'); $('#add').append(div_element); var result=$('form').attr('id',function(){return $('form').index(this);}); console.log(result); $("#out").empty(); $(document).find('form[id] input:eq(0)').trigger('change'); }); $(document).on('change','form[id] input',function(){ var fields = $('form').filter(function(){ return $(this).attr('id').match(/^[0-9]+$/); }).map(function(){ return $(this).find(':text').map(function(){ return $(this).val(); }).get().join(" "); }).get(); $("#out").html(fields.join("<br>\n")); console.log(fields); }); }); </script> <div> <input type="button" value="あ" id="btn"> <input type="button" value="い" id="btn2"> <input type="button" value="う" id="btn3"> <input type="button" value="え" id="btn4"> </div> <div id="add"></div> <div id="out"></div>

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

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

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

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

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

papinianus

2019/06/13 23:12

idを詰めたい意図を追記してください
jsrookie

2019/06/14 00:07

特に深い意図はありません。 ただIDを詰めた方が結果がキレイになるので、その方がいいかなと思ったためです。 もし難易度が高いのであれば、特にこだわりはありません。 よろしくお願いいたします。
guest

回答1

0

ベストアンサー

ユニークな数値idを付加せずにclassで処理すれば良いような気がします。

投稿2019/06/14 00:34

yambejp

総合スコア114968

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問