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

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

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

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

解決済

1回答

5288閲覧

c:ifタグ内のscriptタグが上手く反応しない(jsp)

phpscript

総合スコア14

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

0クリップ

投稿2016/12/09 01:31

現在掲示板サイトをjavaとjsp作成しており、その中でコメント機能を作成しています。
どの書き込みにコメントするかを書き込みの番号で判断し、コメントがある分foreachで回しています。

lang

1<!-- コメントがある分ループ --> 2<c:forEach items="${twts}" var="twts"> 3 4<!-- 書き込みに対しての返信だったら --> 5<c:if test="${twts.reply_boolean == 1}" > 6 7<!--書き込み番号セット&出力 --> 8<c:set var="data" value="${twts.reply_number}" /> 9<c:out value="${data}" /> 10 11<!-- script用データセット--> 12<input type="hidden" value="${data}" id="for_reply"> 13 14<script> 15//input内のvalueを取得 16var for_reply = "#" + $("#for_reply").val(); 17console.log(for_reply); 18</script> 19 20</c:forEach>

c:outで${data}を出力するとc:set内にセットされた書き込み番号を出力できますが、
scriptタグ内で.val()でinput内のvalueを取得しようとすると、初めの1回のみ番号を取得できますがそれ以降は同じ番号が取得されます。
c:outすると100,101,102と番号を取得できますが
script内の.val()では100,100,100というように取得されてしまいます。
scriptタグないで全て別々の番号を取得できるようにしたいです。

どなたか原因がわかる方がいましたら、ご回答よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

<c:forEach>で繰り返し <input type="hidden" value="${data}" id="for_reply">を表示していますが、1つのHTMLに同一のidが出力されているためです。

なので表示されているHTMLでは次のようになっているでしょう。

html

1<input type="hidden" value="100" id="for_reply"> 2<script> 3....(省略) 4</script> 5<input type="hidden" value="101" id="for_reply"> 6<script> 7....(省略) 8</script> 9<input type="hidden" value="102" id="for_reply"> 10<script> 11....(省略) 12</script>

idが重複している場合は先頭のものを取得しますので(そもそもidは重複してはいけません)、
idをわけて出力できるようにするか、親要素を指定してここに属する input type="hidden" の値を取得するようセレクタを設定すれば取得できるでしょう。

投稿2016/12/09 01:45

A-pZ

総合スコア12011

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

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

phpscript

2016/12/09 01:57

迅速な回答ありがとうございます。 自分の中ではidが同じでも値が毎回変われば、変わった値を取得できるものだと勘違いしていました。親要素を指定して値を取得してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問