DigtalBloomStudio

jQuery

top画像

jQueryの導入方法

導入方法

jQuery公式URL

jQuery=>JavaScriptのライブラリ

minified(圧縮版) と uncompressed(非圧縮版)
を分ける理由は、主に 用途(本番用か開発用か) の違いにあります。

非圧縮版(uncompressed / .js)

開発・デバッグ用

ソースコードが整形された状態で記述されている
読みやすいブラウザのデベロッパーツールでエラー箇所を特定しやすい
ファイルサイズが大きい(例:300KB以上)

圧縮版(minified / .min.js)

本番環境用

空白・改行・コメントなどをすべて削除してファイルサイズを極限まで小さく
可読性は低いが、読み込みが高速になる(例:約90KB)

jQuery
  
    2025/6/26日の使用時
    使用時に最新版を確認すること
    
    jQuery 本体
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    
    jQuery UI 本体
    <script src="https://code.jquery.com/ui/1.13.3/jquery-ui.min.js"> </script>

    </body>
  
jQuery

jQuery=CSS

jQuery公式URL

jQuery UI の CSS は「必須ではない」けど「推奨される」

自分で装飾する人は自分でやればOK

見た目の効果 ある時(CSSあり) ない時(CSSなし)
ドラッグ時の枠線や影 ✅ あり ❌ なし(のっぺり)
ボタン・ダイアログの装飾 ✅ UIっぽいデザイン ❌ プレーンな見た目
カーソルが「移動」マークに ✅ move カーソル ❌ 通常カーソルのまま
  
    jQuery UI CSS
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.14.1/themes/base/jquery-ui.css">
  

基礎構文

あまり使わないのでざっくり解説

$('p').text()

jQuery jQuery

jQueryの基本的な構文は、セレクタとメソッドを組み合わせて使用します。

セレクタは、HTML要素を選択するためのもので、メソッドはその要素に対して操作を行うための関数です。

例えば、$('p')はすべての要素を選択
.text()はその要素のテキストを取得または設定するメソッドです。

このように、jQueryを使用すると、HTML要素の操作が非常に簡単になります。

実用例

タイトル

こんにちは

jQuery
  
  HTML
  <h1 id="title">タイトル</h1>
  <p class="message">こんにちは</p>

  jQuery
  $(function() {
    const title = $('#title').text();
    const list = $('.message').text();
    console.log(title);
    console.log(list);
  });
  
セレクタの指定方法 意味
$('p') p要素を取得する
$('#test') idがtestの要素を取得する
$('.test') classがtestの要素をすべて取得する
$('div p') div要素内にあるp要素をすべて取得する
$('div, p') div要素とp要素をすべて取得する
$('div > p') div要素の直下にあるp要素のみを取得する

属性フィルタ

HTML要素の属性(たとえば id や href、type など)に基づいて要素を選択できる便利な機能

あまり使用しないのでざっくり解説

jQuery
属性フィルタ 説明 例(セレクタ)
[attr] 属性 attr を持つ要素を選択 $('[disabled]')disabled属性のある要素
[attr="値"] 属性が完全に一致する要素を選択 $('[type="text"]')<input type="text">
[attr!="値"] 属性が指定値と異なる要素を選択 $('[type!="submit"]')
[attr^="値"] 前方一致 $('[href^="https"]')
[attr$="値"] 後方一致 $('[src$=".jpg"]')
[attr*="値"] 部分一致 $('[title*="注目"]')
  
  HTML
  <a href="#">Google</a>
  <a href="#">Example</a>
  <a href="">Yahoo!</a>

  jQuery
              #から始まるリンクを赤くする
  $('a[href^="#"]').css('color', 'red');
  

イベント処理

クリックやマウス操作、キーボード入力などに反応して動作を実行する仕組み

ON()メソッド

jQuery
  
  HTML
  <button id="on-btn">画像を開くボタン</button>
  <button id="off-btn">画像を閉じるボタン</button>
  <img class="body-img" id="target-image" src="../img/study/jQuery6.jpg" alt="jQuery">

  jQuery
  $(function() {
  // 対象の画像を特定(IDで指定)
  const $targetImage = $('#target-image');
  
  // ページ読み込み時に画像を非表示にする
  $targetImage.hide();
  
  // 画像を開くボタンのクリックイベント
  $('#on-btn').on('click', function() {
    $targetImage.fadeIn(500); // フェードイン効果で表示(数字大きいと時間かかる)
    $(this).prop('disabled', true); // 開くボタンを無効化
    $('#off-btn').prop('disabled', false); // 閉じるボタンを有効化
  });
  
  // 画像を閉じるボタンのクリックイベント
  $('#off-btn').on('click', function() {
    $targetImage.fadeOut(500); // フェードアウト効果で非表示(数字大きいと時間かかる)
    $(this).prop('disabled', true); // 閉じるボタンを無効化
    $('#on-btn').prop('disabled', false); // 開くボタンを有効化
  });
  
  // 初期状態で閉じるボタンを無効化
  $('#off-btn').prop('disabled', true);
  });
  
  
    css
    #on-btn, #off-btn, #btn, #stop {
      margin: 10px;
      padding: 10px 20px;
      background-color: #007bff;
      color: white;
      border: none;
      border-radius: 5px;
      cursor: pointer;
      transition: all 0.3s ease;
    }
    #on-btn:hover, #off-btn:hover {
      background-color: #0056b3;
      transform: translateY(-2px);
    }
    #on-btn:disabled, #off-btn:disabled {
      background-color: #6c757d;
      cursor: not-allowed;
      transform: none;
    }
    #on-btn:disabled:hover, #off-btn:disabled:hover {
      background-color: #6c757d;
    }
  

OFF()メソッド

設定されたイベント処理を解除するoff()メソッド

  
  HTML
  <button id="btn">クリック</button> 
  <button id="stop">クリックイベント解除</button>
  <p id="log"></p>

  jQuery
  function clickHandler() {
  $('#log').text('ボタンがクリックされました');
  }
  $('#btn').on('click', clickHandler);
  // イベント解除
  $('#stop').on('click', function() {
    $('#btn').off('click', clickHandler);
    $('#log').text('イベントを解除しました');
  });

  // ページ読み込み完了時のイベント処理
  $(function() {

  // 初期状態で#load要素を非表示にする
  $('#load').hide();

  // ページの読み込みが完全に完了したら表示
  $(window).on('load', function() {
    $('#load').fadeIn(5000).css({
      'color': '#28a745',
      'font-weight': 'bold',
      'background-color': '#d4edda',
      'padding': '10px',
      'border-radius': '5px',
      'border': '1px solid #c3e6cb'
      });
    });
  });
  
分類 メソッド / イベント名 対象例 説明 使用例
イベント登録 .on('event', fn) $('#btn') イベントを登録
(クリック・入力など)
$('#btn').on('click', function() {...});
.one('event', fn) $('#btn') 一度だけ実行されるイベントを登録 $('#btn').one('click', function() {...});
イベント解除 .off('event') $('#btn') イベントの解除 $('#btn').off('click');
ページ読み込み load $(window) ページ全体(画像含む)の読み込み完了時 $(window).on('load', function() {...});
ready $(document) DOMの構築完了時
(画像読み込みは不要)
$(document).ready(function() {...});
ユーザー操作 click 任意要素 クリック時 $('#btn').on('click', ...);
dblclick 任意要素 ダブルクリック時 $('#btn').on('dblclick', ...);
change input, select 値が変わったとき $('input').on('change', ...);
submit form フォーム送信時 $('form').on('submit', ...);
keydown / keyup/td> document, input キーボードの押下 / 解放 $(document).on('keydown', ...);
focus / blur input フォーカス取得 / フォーカス解除 $('input').on('focus', ...);
マウス操作 mouseover / mouseout 任意要素 マウスが乗った / 離れた(※バブリングあり)
※HTMLのイベントが子要素から親要素へと順番に伝播していく仕組み
意図しないイベントが複数回発生する可能性
$('#el').on('mouseover', function() {...});
mouseenter / mouseleave 任意要素 マウスが乗った / 離れた(※バブリングなし)
※より正確なマウス操作の検知が可能
$('#el').on('mouseenter', function() {...});
ウィンドウ操作 scroll $(window) スクロール時 $(window).on('scroll', ...);
resize $(window) ウィンドウサイズが変更されたとき $(window).on('resize', ...);
表示制御 .show() / .hide() 任意要素 要素を表示 / 非表示 $('#el').show();
.toggle() 任意要素 表示・非表示の切り替え $('#el').toggle();
.fadeIn() / .fadeOut() 任意要素 フェードイン・アウト表示/非表示 ('#el').fadeIn();
('#el').fadeOut();
.fadeToggle() 任意要素 フェード表示の切り替え ('#el').fadeToggle();
.slideDown() / .slideUp() 任意要素 スライドで表示 / 非表示 ('#el').slideDown();
('#el').slideUp()
.slideToggle() 任意要素 スライドの切り替え ('#el').slideToggle();
プロパティ操作 .prop('disabled', true) button, input 無効化 / 有効化 $(this).prop('disabled', true);
.prop('checked') input[type=checkbox] チェック状態の取得 / 設定 $('#cb').prop('checked', true);
属性操作 .prop('disabled', true) button, input 無効化 / 有効化 $(this).prop('disabled', true);
.attr('name', val) button, input 無効化 / 有効化 $(this).prop('disabled', true);
値操作 .val() / .val('値') input, select 入力値の取得・設定 $('#input').val();
テキスト/HTML操作 .text() / .html() 任意要素 テキストまたはHTMLを取得・設定 $('#el').text('こんにちは');

イベント処理-1

loadイベントが発生中

scrollで色が変化

自分で考えて実装してみよう

  
  HTML
  <div id="load">loadイベントが発生中</div>
  <div id="scroll">scrollで色が変化</div>
  
カーソルを当てるとjQueryコードが表示
  
  jQuery
  // ページ読み込み完了時のイベント処理
  $(function() {
  // 初期状態で#load要素を非表示にする
  $('#load').hide();
          
  // ページの読み込みが完全に完了したら表示
  $(window).on('load', function() {
    $('#load').fadeIn(5000).css({
      'color': '#28a745',
      'font-weight': 'bold',
      'background-color': '#d4edda',
      'padding': '10px',
      'border-radius': '5px',
      'border': '1px solid #c3e6cb'
      });
    });
  });

  // scrollイベント(スクロールするたびに色が変わる)
  $(window).on('scroll', function() {
    const scrollTop = $(window).scrollTop();
    const colors = ['#ff6b6b', '#4ecdc4', '#45b7d1', '#96ceb4', '#feca57'];
    const colorIndex = Math.floor(scrollTop / 100) % colors.length;
          
  $('#scroll').css({
    'color': colors[colorIndex],
    'font-weight': 'bold',
    'transition': 'color 0.3s ease'
    }).text(`scrollで色が変化 現在値 (${scrollTop}px)`);
  });
  

CSS操作

HTML要素のCSSスタイルを動的に変更可能

jQuery

CSSの変更例

HTML要素(p)を変更

  
    HTML
    <p id="css-change">HTML要素(p)を変更</p>

    jQuery
    $('#css-change').css ({
      'padding': '10px',
      'background-color': 'tomato',
      'border': '1px solid black',
      'border-radius': '8px'
    });
  

応用例

  
    HTML
    <div id="error-message" class="error-message" style="display: none;">ここは押したら駄目なの!</div>
    <button id="css-btn">押す</button>

    jQuery CSSの変更応用例
    $('#css-btn').on('click', function() {
    const $errorMessage = $('#error-message');
    
    // エラーメッセージを表示
    $errorMessage.show();
    
    // 3秒後に自動で非表示にする
    setTimeout(function() {
      $errorMessage.addClass('fade-out');
      setTimeout(function() {
        $errorMessage.hide().removeClass('fade-out');
      }, 3000);
    }, 2000);
    });
  
  
  CSS
  #css-btn {
    background-color: #dc3545;
    color: #fff;
    border: none;
    border-radius: 5px;
    padding: 10px 20px;
    cursor: pointer;
  }
  .error-message {
    background-color: #ffebee;
    color: #c62828;
    border: 1px solid #ef5350;
    border-radius: 4px;
    padding: 10px;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: bold;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    animation: shake 0.5s ease-in-out;
  }
  /* エラーメッセージのアニメーション */
  @keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
  }
  /* エラーメッセージのフェードアウトアニメーション */
    .error-message.fade-out {
    animation: fadeOut 3s ease-in-out forwards;
  }
  @keyframes fadeOut {
    0% { opacity: 1; }
    70% { opacity: 1; }
    100% { opacity: 0; display: none; }
  }  
  
メソッド / プロパティ 説明 使用例
.css() CSSを設定・取得 $('#el').css('color', 'red')
display 表示状態 'none', 'block'
.show() 要素を表示 $('#el').show()
.hide() 要素を非表示 $('#el').hide()
.toggle() 表示・非表示を切り替え $('#el').toggle()
.fadeIn() フェードイン表示(ふわっと表示) $('#el').fadeIn()
.fadeOut() フェードアウト非表示(ふわっと) $('#el').fadeOut()
.fadeToggle() フェードの切り替え $('#el').fadeToggle()
.slideDown() スライドして表示 $('#el').slideDown()
.slideUp() スライドして非表示 $('#el').slideUp()
.slideToggle() スライドで表示/非表示切り替え $('#el').slideToggle()
color 文字の色 'red', '#333'
background-color 背景色 'yellow'
font-size フォントサイズ '20px'
margin, padding 余白 '10px'
width, height 幅・高さ '100px'

class属性の操作

用途

あらかじめ用意したスタイルを適用/削除

使い方

1.CSSファイルにあらかじめスタイルを指定したclassを用意しておく

2.要素に対してjQueryでclassを追加.削除

使用例

class属性の操作サンプル

class属性を操作するメソッド 意味
addClass() 指定要素にclass属性を追加
removeClass() 指定要素からclass属性を削除
toggleClass() 指定要素に対してclass属性の追加.削除を切り替え
hasClass() 指定要素に特定のclass属性があるかどうかを確認
  
  HTML
  <p id="target">class属性の操作サンプル</p>
  <button id="add">押すとclass属性追加</button>

  CSS
  #add {
    background-color: #dc3545;
    color: #fff;
    border: none;
    border-radius: 5px;
    padding: 10px 20px;
    cursor: pointer;
  }
  HTMLにいない架空の名前
  .css-class-sample {
    color: red;
    background-color: black;
  }

  jQuery
  $(function() {
    $('#add').on('click', function(){
      $('#target').addClass('css-class-sample');
    });                 HTMLにいない架空の名前を呼び出す
  });
  

DOM操作

HTMLの要素(DOM)を動的に取得・追加・削除・変更・表示・非表示にするために使用

基本的なDOM操作

メソッド名 主な用途
.text() テキスト取得・変更 $('#id').text('変更')
.append() 要素追加(末尾) $('#id').append('<p>追加</p>')
.prepend() 要素追加(先頭) $('#list').prepend('<li>先頭</li>')
.after() 指定した要素の後に追加 $('#id').append$('#item').after(''<p>次に追加'</p>')
.before() 指定した要素の前に追加 $('#item').before('<p>前に追加</p>')
.remove() 要素削除 $('#id').remove()
.show() 要素を表示 $('#id').show()
.hide() 要素を非表示 $('#id').hide()

DOM操作の例

テキスト変更

  
  HTML
  <button id="change-btn">DOM操作開始ボタン</button>
  <p id="text-target">テキスト変更</p>

  jQuery
  $('#change-btn').on('click', function() {
    $('#text-target').text('DOM操作でテキストを変更完了');
  });
  

要素追加.削除

  
  HTML
  <button id="change-btn1">要素追加ボタン</button>
  <button id="change-btn2">要素削除ボタン</button>
  <p id="append-remove-target">要素追加.削除</p>

  jQuery

  要素追加(クラスを付ける)
  $('#change-btn1').on('click', function() {
    $('#append-remove-target').append('<p class="added-element">要素追加</p>');
  });

  要素削除
  $('#change-btn2').on('click', function() {
    $('#append-remove-target .added-element').remove();
  });
  

要素非表示

  
  HTML
  <button id="change-btn3">表示ボタン</button>
  <button id="change-btn4">非表示ボタン</button>
  <p id="show-target" style="display: none">要素表示</p>
  <p id="hide-target">要素非表示</p> 

  jQuery

  要素表示
  $('#change-btn3').on('click', function() {
    $('#show-target').show();
  });

  要素非表示
  $('#change-btn4').on('click', function() {
    $('#hide-target').hide();
  });
  

フォーム制御

メールフォーム

実際の送受信は,PHP,で行い同様の表示は可能
この作業は必須ではない

メールフォームは、専用で詳しく解説

名前:
性別: その他
血液型:
趣味: 読書 音楽 映画 散歩
  
  HTML
  <form id="form-test">
    <!-- 名前 -->
    <div>
      <span>名前:</span>
      <input type="text" name="username" />
    </div>
    <!-- 性別 -->
    <div>
      <span>性別:</span>
      <input type="radio" name="gender" value="male">男
      <input type="radio" name="gender" value="female">女
      <input type="radio" name="gender" value="other">その他
    </div>
    <!-- 血液型 -->
    <div>
      <span>血液型:</span>
      <select name="blood">
        <option value="a">A型</option>
        <option value="b">B型</option>
        <option value="o">O型</option>
        <option value="ab">AB型</option>
        <option value="unknown">不明</option>
      </select>
    </div>
    <!-- 趣味 -->
    <div>
      <span>趣味:</span>
      <input type="checkbox" name="hobby" value="book">読書
      <input type="checkbox" name="hobby" value="music">音楽
      <input type="checkbox" name="hobby" value="movie">映画
      <input type="checkbox" name="hobby" value="walk">散歩
    </div>
    <input type="button" id="check-btn" value="check" />
  </form>
  
  
  jQuery
  $(function () {
  // id属性がcheck-btnの要素がクリックされたら
    $('#check-btn').on('click', function () {
      // 名前(テキストボックス)を取得する
      const username = $('[name="username"]').val();

      // 性別(ラジオボタン)を取得する
      const gender = $('[name="gender"]:checked').val();

      // 血液型(セレクトボックス)を取得する
      const blood = $('[name="blood"]').val();

      // 趣味(チェックボックス)を取得する
      const hobbies = [];
      $('[name="hobby"]:checked').each(function() {
        //$(this)は1つずつの選択された要素を意味する
        hobbies.push($(this).val());
      });

      // 全ての値を一つのアラートで表示
      let result = '入力された値:\n';
      result += '名前: ' + (username || '未入力') + '\n';
      result += '性別: ' + (gender || '未選択') + '\n';
      result += '血液型: ' + blood + '\n';
      result += '趣味: ' + (hobbies.length > 0 ? hobbies.join(', ') : '未選択');
      
      window.alert(result);
    });
});

  

jQueryの便利機能-1

一番使用する箇所

jQuery公式URL jQuery

(例)Draggable

ドラッグして移動できるボックス

  
  HTML
  <div id="draggable" class="ui-widget-content">
    <p>ドラッグして移動できるボックス</p>
  </div>

  jQuery
  $( function() {
    $( "#draggable" ).draggable();
  });

  CSS
  #draggable { 
  width: 300px; 
  height: auto; 
  padding: 0.5em; 
  }
  

jQueryの便利機能-2

jQuery公式URL jQuery

(例)Accordion

Section 1

アコーディオン実装

Section 2

アコーディオン実装-1

Section 3

アコーディオン実装-List

  • List-1
  • List-2
  • List-3

Section 4

アコーディオン実装-2

アコーディオン実装-3

  
  HTML
  <div id="accordion">
    <h3>Section 1</h3>
    <div>
      <p>アコーディオン実装</p>
    </div>
    <h3>Section 2</h3>
    <div>
      <p>アコーディオン実装-1</p>
    </div>
    <h3>Section 3</h3>
    <div>
      <p>アコーディオン実装-List</p>
      <ul>
        <li>List-1</li>
        <li>List-2</li>
        <li>List-3</li>
      </ul>
    </div>
    <h3>Section 4</h3>
    <div>
      <p>アコーディオン実装-2</p>
      <p>アコーディオン実装-3</p>
    </div>
  </div>

  jQuery
  $( function() {
  $( "#accordion" ).accordion();
  });
  

jQueryの便利機能-3

アニメーション-1

fadeOut
fadein
box
  
  HTML
  <button id="fadeOut">fadeOut</button>
  <button id="fadein">fadein</button> 
  <div class="jQuery-box">fadeOut<br>fadein<br>box</div>

  jQuery
  $('#fadeOut').on('click', function() {
    $('.jQuery-box').fadeOut();
  });

  $('#fadein').on('click', function() {
    $('.jQuery-box').fadeIn();
  });
  

アニメーション-2

※slideToggle(slideUp+slideDown交互に動作)

slideUp
slideDown
slideToggle
box
  
  HTML
  <button id="slideUp">slideUp</button>
  <button id="slideDown">slideDown</button>
  <button id="slideToggle">slideToggle</button>
  <div class="jQuery-box">slideUp<br>slideDown<br>slideToggle<br>box</div>

  jQuery
  $('#slideUp').on('click', function() {
    $('.jQuery-box').slideUp();
  });

  $('#slideDown').on('click', function() {
    $('.jQuery-box').slideDown();
  });

  $('#slideToggle').on('click', function() {
    $('.jQuery-box').slideToggle();
  });
  
メソッド 効果 説明 使用例
.show() 表示 非表示状態の要素を表示 $('#box').show();
.hide() 非表示 要素を非表示 $('#box').hide();
.toggle() 切り替え 表示/非表示を切り替え $('#box').toggle();
.fadeIn() フェードイン 徐々に表示 $('#box').fadeIn();
.fadeOut() フェードアウト 徐々に非表示 $('#box').fadeOut();
.fadeToggle() フェード切替 表示/非表示をフェードで切替 $('#box').fadeToggle();
.fadeTo() フェード透明度変更 指定した透明度に変更 $('#box').fadeTo(400, 0.5);
.slideDown() スライド表示 スライドで表示 $('#box').slideDown();
.slideUp() スライド非表示 スライドで非表示 $('#box').slideUp();
.slideToggle() スライド切替 表示/非表示をスライドで切替 $('#box').slideToggle();
.animate() カスタムアニメ CSSプロパティをアニメーションで変更 $('#box').animate({width:'300px'}, 500);
.delay() 遅延 指定時間待機して次の処理へ $('#box').delay(1000).fadeOut();
.stop() 停止 実行中のアニメーションを停止 $('#box').stop();
.finish() 強制終了 全アニメーションを完了状態 $('#box').finish();
Top