
質問させていただきます。
// html php
<table class="table-click" >
<thead>
</thad>
<tbody>
<!-- $iをIDとする -->
<?php for($i = 0; $i < 10; $i++): ?>
<?php echo '<input type="hidden" class="id" name="id" value="' . $i . '">'?>
<tr>
<td>
<?php echo 'テスト' . $i; ?>
</td>
</tr>
<?php endfor; ?>
</tbody>
</table>
// jQuery
$(function(){
$('.table-click tr').click(function(){
var id = $('.id').val();
alert(id);
});
});
テーブルの各trをクリックすることでhiddenのid番号をアラートで出力したいのですが、
(0行目のtrをクリックすれば0, 1行目のtrをクリックすれば1と表示したい)
現状どのtrをクリックしたも0のままです。
初歩的な考え方を間違えているのでしょうが、思いつきません。
すみませんが、ご指摘よろしくお願いいたします。
No.2
- 回答日時:
すでに指摘に出ていますが、文法がおかしいですよね?
わざわざhiddenにしているinput要素の意味がわかりませんが、もしも、idを取得するためだけに設けているのであるのならナンセンスです。(文書上は、まったく必然性のない要素ですし)
どうしてもidを振りたければ、(ご質問のケースでは)tr要素に設定するのが妥当ではないでしょうか。
idを取得した後に、どのような処理を予定なさっているのか不明ですが、本当にidがないと処理できないものでしょうか?
大抵のイベント処理は個々の要素のidなどは必要とせずとも処理が可能なものが多いように思います。
とは言っても、必要となる場合もあるでしょうが、そのためだけに「順序を示すようなid」を振っていらっしゃるのだとしら、これもまた必要無さそうに感じます。
(ついでながら、数字から始まるidも文法上はNGだったような・・・(←未確認です))
どうしても順番が必要なら数えれば良いので、(勝手な想像ですが)対象となる表さえ特定できていれば良さそうに思えます。
また、その方が、HTMLもシンプルで分かり易くなるのではないでしょうか。
以下、table要素だけにidを設けて、同様のことを行う例です。
<!DOCTYPE HTML>
<html lang="ja">
<head><title>test</title>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery","1");</script>
</head>
<body>
<table id="test" border=1>
<tr><td>hogehoge</td></tr>
<tr><td>hogehoge</td></tr>
<tr><td>hogehoge</td></tr>
<tr><td>hogehoge</td></tr>
<tr><td>hogehoge</td></tr>
</table>
<script type="text/javascript">
$("#test").on("click", "td", function(){
alert($("#test tr").index($(this.parentNode)));
});
</script>
</body>
</html>
※ ご質問とは直接関係ありませんが、このような方法をとることで、動的に行が追加・削除されたりするような場合でも、問題なく動作することが可能になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
tbody要素のinnerHTMLが書き換...
-
return trueとreturn falseの用...
-
<input>の選択肢をプルダウンメ...
-
特定<table>内の<td>の色を変える
-
selectを変更不可にしたい
-
ラジオボタンが選択されたらテ...
-
プルダウンで選択すると、DBの...
-
onclickをEnterキーでも行いたい
-
onchangeイベントを強制的に発...
-
チェックボックスのON/OFFでVal...
-
【javascript・PHP】プルダウン...
-
チェックボックス付きのテーブ...
-
データベースからのarray を j...
-
slickのレスポンシブ > center...
-
jsで質問です。 ボタンが二つ存...
-
jquery.validate.jsについて
-
hiddenのvalueの値を変えたい
-
ハイパーリンクを別ウインドウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
画面表示とともに、テーブルの...
-
新しいウィンドをリンク指定し...
-
jquery にて、アラートダイアロ...
-
指定のテキストをクリックする...
-
テーブルの行数を可変長にした...
-
写真の下に説明文
-
html内>テーブル内に複数のjav...
-
Javascriptでテーブルタグの座...
-
【jQuery】tableループ内のIDの...
-
クリックごとに文字色が交互に...
-
javascript でテーブル操作
-
javascriptのカルーセル
-
a9のサイトの仕組み
-
appendChildとinnerHTMLを短く
-
javascriptでクリックするごと...
-
テキストエリアに入力した改行...
-
tbody要素のinnerHTMLが書き換...
-
外部のデータファイルの読み込...
おすすめ情報