
No.5ベストアンサー
- 回答日時:
No4です。
連投失礼。
No4は、ご質問に沿って、個別に各行を切り替える例ですが、table要素内に切替える対象が1種類だけであるなら、個別に切り替えるよりもCSSを利用する方が簡単になりますね。
スクリプトは
event.target.closest('table')?.classList.toggle('open');
とでもしておいて、CSSで
table tr.abc { display:none; }
table.open tr.abc { display: table-row; }
などとすることで、親要素(=table)のクラス名の切り替えだけで済むようになります。
No.4
- 回答日時:
No3です。
>表示、非表示にすることはできているのですが~~
元のご質問文は、それを質問しているように読めます。
聞きたいことを質問文に書かなければ、読む人に伝わるはずもないですが・・
>ボタン押したテーブルのクラスabcのtrだけ非表示、表示にしたいです。
No2に記したように、その手順で記述すれば良いです。
(調べる方法も併せて回答しておいたつもりですけれど・・)
Chrome、fxで確認した範囲では、以下で取得が可能です。
event.target.closest('table')?.querySelectorAll('tr.abc').forEach(e => {
e.style.display = (e.style.display=='none')?'table-row':'none';
});
ただし、ご提示の記述法では、全てのブラウザでeventオブジェクトを取得可能かどうかわかりませんので、addEventListnerなどでイベントをバインドし、第一引数でeventオブジェクトを受け取る方法にしておく方が確実です。
また、この内容は以下のご質問でNo3様が回答なさっているのと同じものです。
https://oshiete.goo.ne.jp/qa/13763802.html
No.3
- 回答日時:
No2です。
>実際はtable要素は複数あります。
>何か実現する方法はありませんでしょうか。
自分自身(あるいは親・祖先要素)に id や class名 があるならそれを利用しても良いですし、文書内での順序で識別できるならそちらでも良いです。
一定の手順で対象の要素を識別できる方法さえあれば、その手順に従って特定すれば良いでしょう。
要素の取得方法がわからないのであれば、「javascript 要素の取得」あたりをキーに検索すれば様々な方法とその説明が見つかるはずです。
ありがとうございます。
質問の視点を変えます。表示、非表示にすることはできているのですが、要素の取得に苦戦しております。
ボタン押したテーブルのクラスabcのtrだけ非表示、表示にしたいです。
素直にクラスだけ取ると、全てに反映されてしまうため、取得方法はありませんでしょうか。
//1個目のテーブル
<table>
<tr>
<th>詳細</th>
<th>情報</th>
</tr>
<tr>
<td><span>情報1</span><button onclick="test()" type="button">詳細</button></td>
</tr>
<tr class ="abc">
<td>情報2</td>
</tr>
<tr class ="abc">
<td>情報3</td>
</tr>
</table>
//2個目のテーブル
<table>
<tr>
<th>詳細</th>
<th>情報</th>
</tr>
<tr>
<td><span>情報1</span><button onclick="test()" type="button">詳細</button></td>
</tr>
<tr class ="abc">
<td>情報2</td>
</tr>
<tr class ="abc">
<td>情報3</td>
</tr>
</table>
No.2
- 回答日時:
こんにちは
非表示にしたい行(=tr要素)を取得して、
tr要素.style.display = 'none';
を実行すれば、その行を非表示にできます。
tr要素の取得方法は、table要素.rows[n] でも querySelector() 等でもあるいは他の方法でもお好みの方法でどうぞ。
例えば、ご提示の例で、文書中にtable要素が一つだけなら、
document.querySelectorAll('table tr')[1]
で、2番目のtr要素を取得できます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ハイパーリンクを別ウインドウ...
-
プルダウンで選択すると、DBの...
-
チェックボックスにチェックが...
-
クリックされた罫表セルの行番...
-
【JQuery】テーブルで行選択さ...
-
エクセル VBA にて IE のボ...
-
【jQuery】input nameの文字列...
-
getElementsByNameについて
-
return trueとreturn falseの用...
-
html selectの内容を初期値に戻す
-
selectが変更されたらnameを指...
-
ボタン無しでフォーム内容送信
-
selectのonChangeが動作しません
-
日付入力欄の表示形式を自動的...
-
Formのシリアライズができない
-
動的にTabindexの値を変えたい!
-
チェックボックスのグループ化...
-
未選択のプルダウンメニューを...
-
formのsubmitイベントの発生に...
-
ラジオボタンによる内容の振り分け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンで選択すると、DBの...
-
ハイパーリンクを別ウインドウ...
-
tableの任意行にfocusをあてる
-
特定<table>内の<td>の色を変える
-
一覧から選択した行の行番号を...
-
CSVデータをツリー表示させたい
-
テーブルの項目の値取得
-
JavaScriptでテーブルをクリッ...
-
至急!GetElementById でtdの...
-
jspでのArrayListの値の表示
-
JavaScriptで特定のtdタグにcla...
-
javascript クリックすると、あ...
-
ビンゴゲームの作成
-
【UWSC】HTML内のある部分を抽...
-
クリックされた罫表セルの行番...
-
チェックボックスにチェックが...
-
まとめてセルの色を変えたい
-
指定した要素を含んだテキスト...
-
VBScriptの繰り返し文について
-
テーブル内に表示されている数...
おすすめ情報