jQuery

jQueryの導入方法
導入方法
jQuery公式URLjQuery=>JavaScriptのライブラリ
minified(圧縮版) と uncompressed(非圧縮版)
を分ける理由は、主に 用途(本番用か開発用か) の違いにあります。
非圧縮版(uncompressed / .js)
開発・デバッグ用
ソースコードが整形された状態で記述されている
読みやすいブラウザのデベロッパーツールでエラー箇所を特定しやすい
ファイルサイズが大きい(例:300KB以上)
圧縮版(minified / .min.js)
本番環境用
空白・改行・コメントなどをすべて削除してファイルサイズを極限まで小さく
可読性は低いが、読み込みが高速になる(例:約90KB)

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=CSS
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の基本的な構文は、セレクタとメソッドを組み合わせて使用します。
セレクタは、HTML要素を選択するためのもので、メソッドはその要素に対して操作を行うための関数です。
例えば、$('p')はすべての要素を選択
.text()はその要素のテキストを取得または設定するメソッドです。
このように、jQueryを使用すると、HTML要素の操作が非常に簡単になります。
実用例
タイトル

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 など)に基づいて要素を選択できる便利な機能
あまり使用しないのでざっくり解説

属性フィルタ | 説明 | 例(セレクタ) |
---|---|---|
[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()メソッド

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
// ページ読み込み完了時のイベント処理
$(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スタイルを動的に変更可能

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
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

(例)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
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交互に動作)
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(); |
