速報

imgproxyのICO処理にコード実行のおそれ|4.0.16だけでは残る問題を確認

CATEGORY

【JavaScript】要素の表示・非表示を切り替える

※本ページのリンクにはプロモーションが含まれています。

【JavaScript】要素の表示・非表示を切り替える

目次

本記事では、JavaScriptで要素の表示・非表示を切り替える方法のご紹介しています。

ボタンをクリックしてある要素の表示・非表示を切り替えたい。どうすればいいの?

上記の疑問にお答えします。

では解説していきます。

スポンサーリンク

styleのdisplayを変更して要素の表示・非表示を切り替える

JavaScriptのstyleでdisplayの値を変更して要素の表示・非表示を切り替えます。要素を表示する場合はdisplayの値をblockに、非表示にする場合はnoneにするポピュラーな切り替え方法です。

HTML

<button>Click Me!</button>
<article>
  <div id="box">Box</div>
</article>

JS

//ボタン要素を取得
let switchBtn = document.getElementsByTagName('button')[0];
//表示・非表示を切り替える要素を取得
let box = document.getElementById('box');

//styleのdisplayを変更する関数
let changeElement = (el)=> {

  if(el.style.display==''){
    el.style.display='none';
  }else{
    el.style.display='';
  }

}

//上記関数をボタンクリック時に実行
switchBtn.addEventListener('click', ()=> {
  changeElement(box);
}, false);

下記はサンプルのデモです。Click Meと表示されたボタンをクリックするとボックスの表示・非表示が切り替わります。

DEMO

See the Pen Element Switch 01|JavaScript by ryohei (@intotheprogram) on CodePen.

続いてclassを使用した要素の表示・非表示の切り替え方法をご紹介します。

classの追加・削除で要素の表示・非表示を切り替える

定義済みのclassを追加・削除して要素の表示・非表示を切り替えます。内容としては前項でご紹介したdisplayの変更と同じです。初期状態で非表示になっている要素にclassを追加し、displayの値を更新します。

HTML

<button>Click Me!</button>
<article>
  <div id="box" class="active">Box</div>
</article>

CSS

.active {
  display: block !important;
}

JS

let switchBtn = document.getElementsByTagName('button')[0];
let box = document.getElementById('box');

let changeElement = (el)=> {
  el.classList.toggle('active');
}

switchBtn.addEventListener('click', ()=> {
  changeElement(box);
}, false);

下記で動作をご確認いただけます。

DEMO

See the Pen Element Switch 02|JavaScript by ryohei (@intotheprogram) on CodePen.

classを使用するメリットは、一度に複数のスタイルを設定できる点です。本記事では要素の表示・非表示にフォーカスしていますが、同時に文字色や要素自体の大きさを変更したりする場合もあります。そういったときにclassを活用すると便利です。

スポンサーリンク

最後に

JavaScriptにおいて要素の取得や属性の操作は基本となります。属性操作の応用で本記事の内容も実現できます。プログラミングの勉強を始めたばかりの頃は、書籍の内容が難しく感じたり、わからなさすぎて行き詰ることがあります。それでも続けてさえいれば着実に技術は身についていきますので、根気よく続けていただければと思います!

以上、JavaScriptで要素の表示・非表示を切り替える方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク