• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入力フォームのテキストのエラーメッセージについて)

セレクトボックスのエラーメッセージのコードを調べていますが、一部分が理解できません。

このQ&Aのポイント
  • 質問文章では、JavaScriptを使用してセレクトボックスのエラーメッセージを表示させるコードの一部について調べています。
  • 該当部分の`document.querySelector('.err')?.remove();`の意味や、`('.err')?`の使用について理解できずにいます。
  • また、`insertAdjacentHTML`を使用してテキストエラーメッセージを非表示にすると解釈していますが、正しいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

document.querySelector('.err')?.remove(); まず、2つの疑問があるようですが、 ".err"はclass=errなどで使うセレクタ "#err"はid=errなどで使うセレクタ という感じです。 宣言時も <style> .err {/*ここがスタイルシート*/} #err {/*ここがスタイルシート*/} </style> と分けて書いているはずです。 次に、「クエスチョンマーク?」ですが。。。 別の書き方をしますが・・・ let a=document.querySelector('.err'); if (a!==null) a.remove(); とほぼ等価です。厳密には、null または undefined なので、 document.querySelector('.err') こいつが、「null または undefined」を持ってるなら 続く.remove();を続けて実行しろ! という書式になります。 なので、この場合class=errが存在するなら、remove()しろ と書かれている!と判断すればOKです。

hayosat
質問者

お礼

わかりやすい回答ありがとうございました。感謝いたします。

その他の回答 (2)

  • retorofan
  • ベストアンサー率34% (435/1276)
回答No.3

document.querySelector('.err')?.remove();の意味 >insertAdjacentHTMLで出したテキストエラーをセレクトボックスが空欄でない時に非表示にする とい解釈のようですが、あってますでしょうか? >class名やid名に('.err')?という名前は使用していませんがドットに.errとクエスチョンマーク?とはどういう意味なのでしょうか? [回答] サブミットしてエラーメッセージが出た時に <div class="alert15"></div> に記述されます。 その際に、「err」クラスが付与されたSPAN要素が書き込まれます。 エラーメッセージが出た時だけ、このクラスが存在することになります。 document.querySelector('.err')?.remove();の意味 日本語に訳すと ・もし、「err」クラスが存在していたら、削除しなさい なぜ、そうするのか? そうしないと、おなじエラーが出た時に 同じエラーメッセージが再度でてしまうから。 試しに、下記のようにコメントアウトして エラーを繰り返してみたらわかります。 // document.querySelector('.err')?.remove();

hayosat
質問者

お礼

わかりやすい回答ありがとうございました。感謝いたします。

回答No.2

ミス こいつが、「null または undefined」を持ってるなら ↓ こいつが、「null または undefined」ではないならば、 ですね。

関連するQ&A