
javascriptで質問です。
displayプロパティを使用してテーブルの一部を表示・非表示をしたいのですが、設定したい要素をうまく取得することができません。
ボタン押下したclass testのtableのtrにclass testにtr要素.style.display = 'none'や'block'を設定してボタンで切り替えれるようにしたいのですが、うまく設定したい要素を取得できません。
ボタンを押下した、テーブルのclass testだけの要素を取得する方法はないでしょうか。
どうかお助けください。
//テーブル1
<table>
<tr>
<th>情報1</th>
<th>情報2</th>
</tr>
<tr>
<td>値1<button onclick="test()" type="button">詳細</button></td>
<td>値2</td>
</tr>
<tr class="test">
<td>値3</td>
<td>値4</td>
</tr>
</table>
//テーブル2
<table>
<tr>
<th>情報1</th>
<th>情報2</th>
</tr>
<tr>
<td>値1<button onclick="test()" type="button">詳細</button></td>
<td>値2</td>
</tr>
<tr class="test">
<td>値3</td>
<td>値4</td>
</tr>
<tr>
<td>値3</td>
<td>値4</td>
</tr>
</table>
No.3ベストアンサー
- 回答日時:
先の回答を見たら、もっと簡単に書く方法がありました。
$(obj).closest('tbody').find('tr.test').toggle();
または
obj.closest('tbody').querySelectorAll('tr.test').forEach(function(e){
e.style.display = (e.style.display == 'none') ? 'table-row' : 'none';
});
No.2
- 回答日時:
jQuery を使用すると簡単に書けます。
<html>
<head>
<script src="https ://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
function test(obj){
$(obj).parent().parent().parent().find('tr.test').toggle();
/* jQuery を使用しない場合(他者の回答を一部流用)
obj.parentNode.parentNode.parentNode.querySelectorAll('tr.test').forEach(function(e){
e.style.display = (e.style.display == 'none') ? 'table-row' : 'none';
});
*/
}
</script>
</head>
<body>
//テーブル1
<table>
<tr>
<th>情報1</th>
<th>情報2</th>
</tr>
<tr>
<td>値1<button onclick="test(this)" type="button">詳細</button></td>
<td>値2</td>
</tr>
<tr class="test">
<td>値3</td>
<td>値4</td>
</tr>
</table>
//テーブル2
<table>
<tr>
<th>情報1</th>
<th>情報2</th>
</tr>
<tr>
<td>値1<button onclick="test(this)" type="button">詳細</button></td>
<td>値2</td>
</tr>
<tr class="test">
<td>値3</td>
<td>値4</td>
</tr>
<tr>
<td>値3</td>
<td>値4</td>
</tr>
</table>
</body>
</html>
No.1
- 回答日時:
こんにちは
先日の回答の方法ではダメという事でしょうか?
https://oshiete.goo.ne.jp/qa/13764428.html
ダメな場合は、上記のNo3にも記した通りですが・・
addEventListner でイベント処理を設定する方法にすれば、
確実に第一引数でイベントオブジェクトを取得できるように
なるはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウンで選択すると、DBの...
-
ハイパーリンクを別ウインドウ...
-
特定<table>内の<td>の色を変える
-
クリックされた罫表セルの行番...
-
一覧から選択した行の行番号を...
-
ツールチップにテーブル左端列...
-
sessionの値でボタンを活性・非...
-
プルダウン選択を変更すると、...
-
ボタン無しでフォーム内容送信
-
【jsp/Java】チェックボックス...
-
SELECTの選択状態を、複数のVAL...
-
【jQuery】input nameの文字列...
-
HTMLで入力したものを変数で扱...
-
条件により、リンク先に画面遷...
-
文末の改行コードを削除したい
-
2次元配列で2項目についてソー...
-
Javascript 郵便番号の入力欄で...
-
フレーム間の移動の方法について
-
印刷プレビュー後のウィンドウ...
-
1つのform内に2つのsubmitボタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンで選択すると、DBの...
-
ハイパーリンクを別ウインドウ...
-
tableの任意行にfocusをあてる
-
特定<table>内の<td>の色を変える
-
一覧から選択した行の行番号を...
-
CSVデータをツリー表示させたい
-
テーブルの項目の値取得
-
JavaScriptでテーブルをクリッ...
-
至急!GetElementById でtdの...
-
jspでのArrayListの値の表示
-
JavaScriptで特定のtdタグにcla...
-
javascript クリックすると、あ...
-
ビンゴゲームの作成
-
【UWSC】HTML内のある部分を抽...
-
クリックされた罫表セルの行番...
-
チェックボックスにチェックが...
-
まとめてセルの色を変えたい
-
指定した要素を含んだテキスト...
-
VBScriptの繰り返し文について
-
テーブル内に表示されている数...
おすすめ情報