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

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

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

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

Q&A

解決済

2回答

898閲覧

要素の表示が上手くいかない

maystorm

総合スコア4

jQuery

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

0グッド

0クリップ

投稿2021/01/28 09:19

編集2021/01/28 11:36

前提・実現したいこと

ページ表示する際に、要素の表示を行いたいのですが、上手く実装できずこちらに質問させていただきました。

該当のソースコード

html

1<div class="setting"> 2 <div class="Field01"> 3 <p>条件1</p> 4 <select name="c_field" class="inputT01"> 5 <option value="0">aaa</option> 6 <option value="1">bbb</option> 7 <option value="2">ccc</option> 8 </select> 9 <p>条件2</p> 10 <input type="text" name="c_term" class="inputT01 importantBox01" placeholder="keyword"> 11 </div> 12 <input type="button" id="search_add" value="追加"> 13 <div class="Field01" id="search_condition" style="display: none;"> 14  <p>条件0</p> 15 <select name="c_syntax" class="inputT01"> 16 <option value="0">AND</option> 17 <option value="1">OR</option> 18 <option value="2">NOT</option> 19 </select> 20 <p>条件1</p> 21 <select name="c_field" class="inputT01"> 22 <option value="0">aaa</option> 23 <option value="1">bbb</option> 24 <option value="2">ccc</option> 25 </select> 26 <p>条件2</p> 27  <input type="text" name="c_term" class="keyword"> 28 </div> 29 <input type="button" name="" style="display: none;" value="追加"> 30</div>

試したソースコード

jQuery

1$(function() { 2 3 for (var i = 0; i < 2; i++) { 4 5 $("#search_condition").last().css('display', 'block'); 6 $("#search_condition").clone().appendTo(".setting"); 7 $("#search_condition").last().css('display', 'none'); 8 $("#search_add").last().css('display', 'block'); 9 $("#search_add").clone().appendTo(".setting"); 10 $("#search_add").last().css('display', 'none'); 11 } 12});

表示したい内容

画面をロードした際に、以下のような表示になるよう設定したいと思っています。

条件1
セレクトボックス

条件2
テキストエリア

=========
下記項目が、画面ロード時に追加されるようにしたい

条件0
セレクトボックス

条件1
セレクトボックス

条件2
テキストエリア

条件0
セレクトボックス

条件1
セレクトボックス

条件2
テキストエリア

追加ボタン ※一番下に表示する

問題点

条件1
セレクトボックス

条件2
テキストエリア

=========
下記項目が、画面ロード時に追加されるようにしたい

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
条件0
セレクトボックス

条件1
セレクトボックス

条件2
テキストエリア
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ このエリアが非表示となってしまいます。

条件0
セレクトボックス

条件1
セレクトボックス

条件2
テキストエリア

追加ボタン ※一番下に表示する

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

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

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

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

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

maystorm

2021/01/28 11:36

情報が不足しておりました。 問題点を追記致しました。
guest

回答2

0

要素の表示が上手くいかない

ここでいう要素とはなんですか?

コードをみてみたら、画面をロードした際に表示されていましたよ。
ゴールがわからないのですが、読み込みは一瞬でされてるので、
display: none;で隠している部分の表示を遅らせたいのでしょうか。
何かボタンを押したら隠した部分が出てくるようにしたいのでしょうか。

投稿2021/01/28 11:45

motoo888

総合スコア65

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

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

maystorm

2021/01/29 10:04

ご確認ありがとうございます。 質問内容がわかりづらく、お手数をお掛けしました。
guest

0

ベストアンサー

clone()はidもコピーします。
idは1ページに1つまでです。
それ以上あると、JavaScriptは正しく動かない可能性があります。
おそらくそこが関係してるのでは。
idをclone()するたびに書き換えるか、clone()する要素はid与えなくてもいいような実装を工夫してみてください。

投稿2021/01/28 11:45

m.ts10806

総合スコア80875

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

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

maystorm

2021/01/29 10:03

ご確認ありがとうございます。 ご指摘頂いた通り、同じidを複数設定していることが問題でした。 clone()を使用せず、追加したいコードをそのままappendできるよう修正しました。
m.ts10806

2021/01/29 10:36

clone使っても書き換えれば良いと言えばよいです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問