前提
初めて質問をさせていただきます、よろしくお願いいたします。
SPAのシステム保守を行っている者です。
言語はJavascript(ES5)、及びjQuery3.4.1を用いて、
下記HTMLの構造で値が空である行(<tr>)に対し「display: none」を付与しようと考えています。
最低限の要件としてIE10への対応が必要です。
該当コード
※テーブルレイアウトですが、これの可否については目を瞑って頂けると幸いです。
HTML
1<table id="oya"> 2 <tbody> 3 <tr> 4 <td class="row-title">行タイトル(残す行)</td> 5 <td class="row-value">value</td> 6 </tr> 7 <tr> 8 <td class="row-title">行タイトル(消す行)</td> 9 <td class="row-value"></td> 10 </tr> 11 <tr> 12 <td class="row-title">行タイトル(消す行)</td> 13 <td class="row-value"></td> 14 </tr> 15 <tr>...</tr> 16 <tr>...</tr> 17 <tr>...</tr> 18 <tr>...</tr> 19 </tbody> 20</table>
表示例
処理適用前
行名 | 値 |
---|---|
名前 | 佐藤 圭太 |
性別 | |
番号 | 0037301 |
出向予定 | |
TOEICスコア |
処理適用後例
行名 | 値 |
---|---|
名前 | 佐藤 圭太 |
番号 | 0037301 |
具体的に分からないこと
質問事項は二つあります。
先ず発火条件ですが、「そのページを表示しきった直後」を想定しています。
しかしSPAである都合上「DOMContentLoaded」や「onClick」等は使用できない為、
「コード上でその処理に差し掛かった時」に発火させたいと考えていますが、
この方法だとid="oya"に対してthisから相対的に子要素などを指定できないのではないか、と詰まっています。
もう一方は、jsやjQueryを用いてid="oya"配下の<tr>の中身が空である、
もっと言えば<td class="row-value"></td>の中身が空の場合、
その親の<tr>にdisplay:none付与、という判定をするのはわかりますが、
それを各行それぞれに対して連続的に判定する方法が分からない、という状態にあります。
これらふたつのうち、どちらかについてでもご教示頂けると非常に有難いです。
補足情報
直接役に立たない情報かもしれませんが、FWはプロジェクト独自のものです。
それと、コロナの影響で出社が制限される都合で返信が遅くて来週以降となってしまうことをお詫び申し上げます。
追記1
> そもそもテーブル作る最中に除外すればいいだけでは?
当画面は「照会」モードと「更新」モードで使いまわされており、
テーブルを作る段階でタグを除外してしまうと片方のモードで正しく表示されないリスクが高いため、
display: none;による非表示を採用しようという結論に至った経緯があります。
そしてなるべくFWのコアな部分に手を入れることなく、
出来ればクライアント側で完結させたいという事情があります。
回答4件
あなたの回答
tips
プレビュー