
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ランキング
-
テーブル要素の操作
-
クリックされた罫表セルの行番...
-
ボタン無しでフォーム内容送信
-
javaScriptの変数をJavaの変数...
-
onchangeイベントを強制的に発...
-
return trueとreturn falseの用...
-
<input>の選択肢をプルダウンメ...
-
Formのシリアライズができない
-
RegularExpressionValidatorの...
-
Javascriptに条件分布ついて(再)
-
C#(csファイル)とjavascriptと...
-
name = cats[1] という input ...
-
switchを使って四則演算のプロ...
-
複数のformから値を取得する方法
-
データベースの値を判断してラ...
-
テキストボックスにカーソルを...
-
テーブル内のチェックボックス...
-
複数のチェックボックス項目が...
-
idの振り直しについて
-
画面表示とともに、テーブルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンで選択すると、DBの...
-
ハイパーリンクを別ウインドウ...
-
特定<table>内の<td>の色を変える
-
JavaScriptで特定のtdタグにcla...
-
JavaScriptでテーブルの行入れ替え
-
javascriptで質問です。 displa...
-
クリックされた罫表セルの行番...
-
jsで質問です。 displayプロパ...
-
JavaScriptでテーブルをクリッ...
-
テーブル内に表示されている数...
-
jqueryとscriptでTABLEのセルを...
-
tableの任意行にfocusをあてる
-
スクロールバーの表示位置を変...
-
Selenium.ChromeDriverの使い方...
-
テーブルの項目の値取得
-
jspでのArrayListの値の表示
-
二次元配列に数字をランダムに...
-
テーブルで表示する『列』を絞...
-
EasyUIのSubGrid(jquery)にお...
-
ブルダウン選択でページの表示...
おすすめ情報