ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
基本のセレクタ
// ID
$('#header')
// クラス
$('.btn')
// タグ
$('div')
$('p')
// 子孫
$('ul li')
$('.card .title')
// 直接の子
$('ul > li')
// 隣接兄弟
$('h2 + p')
// 全兄弟
$('h2 ~ p')
// 属性
$('input[type="text"]')
$('a[href^="https://"]')
$('img[alt$=".jpg"]')
// 複数(カンマ)
$('h1, h2, h3')
// 擬似クラス
$('li:first-child')
$('tr:nth-child(odd)')
$('input:checked')
$(':input') // 全フォーム要素
$('p:contains("hello")') // jQuery 独自
$(':visible') // 表示中のみ(jQuery 独自)
トラバース(DOM 移動)
| メソッド | 取得対象 |
|---|---|
.find(sel) | 子孫から sel に一致 |
.children([sel]) | 直接の子のみ |
.parent([sel]) | 直近の親 |
.parents([sel]) | 祖先全部 |
.closest(sel) | 自身含む最も近い親で sel に一致 |
.next([sel]) | 次の兄弟 |
.prev([sel]) | 前の兄弟 |
.nextAll() / .prevAll() | 後 / 前の全兄弟 |
.siblings([sel]) | 自分以外の兄弟 |
$('.row')
.find('.btn') // .row の中の .btn 全部
.closest('form') // それを含む直近の form
.siblings('.error') // form の兄弟の .error
.first(); // 最初の 1 つ
// クリックされた行の input を取得
$('.row .btn').on('click', function() {
const $row = $(this).closest('.row');
const $input = $row.find('input');
console.log($input.val());
});
絞り込みフィルタ
$('li').first(); // 最初の 1 つ
$('li').last(); // 最後の 1 つ
$('li').eq(2); // 0 始まりで 3 番目
$('li').eq(-1); // 最後(負インデックス)
// filter : セレクタ or 関数で絞る
$('li').filter('.active');
$('li').filter(function(i, el) {
return $(el).text().length > 10;
});
// not : 除外
$('li').not('.disabled');
// has : 子要素を持つもの
$('li').has('a.external');
// slice : 範囲
$('li').slice(0, 3); // 0,1,2
取得結果の扱い
const $items = $('.item');
// 長さ
$items.length; // 数値(要素数)
// DOM 要素配列に
$items.toArray(); // [HTMLElement, HTMLElement, ...]
$items.get(); // 同上
$items.get(0); // 最初の HTMLElement
$items[0]; // [] でも OK
// ループ : .each
$items.each(function(i, el) {
console.log(i, el, $(el).text());
});
// map : 値の配列を作る
const texts = $items.map(function() {
return $(this).text();
}).get();
// ['A', 'B', 'C']
// 任意の要素が含まれるか
$items.is('.active'); // 1 つでも .active があれば true
属性 / プロパティ取得
$('#myInput').val(); // input/select の値
$('#myInput').val('hello'); // 値を設定
$('#myLink').attr('href'); // 属性
$('#myLink').attr('href', '/'); // 属性設定
$('#chk').prop('checked'); // チェック状態
$('#chk').prop('checked', true);
$('#box').data('user-id'); // <div data-user-id="42">
$('#box').data(); // 全 data-* 取得(オブジェクト)
$('h1').text(); // テキスト取得
$('h1').html(); // 内部 HTML
動的に追加された要素の取得
イベントは on() でデリゲートすると、後から追加された要素にも反応します:
// ❌ 後から追加された .row には効かない
$('.row .delete').on('click', function() { ... });
// ✅ 親に委譲(イベントデリゲーション)
$(document).on('click', '.row .delete', function() {
const $row = $(this).closest('.row');
$row.remove();
});
// 追加されたかチェック
if ($('.new-item').length) {
// ある
}
パフォーマンス Tips
- 変数にキャッシュ:
const $btn = $('#btn');を使い回す - ID セレクタが一番速い(
getElementById直結) - find より直接:
$('.row .btn')より$('.row').find('.btn')の方が速い場合あり - コンテキスト指定:
$('.btn', container)でルート限定 - 巨大な DOM では document.querySelectorAll + forEach の方が速いことも
現代の素 JavaScript で書き直す
| jQuery | 素 JS |
|---|---|
$('#id') | document.getElementById('id') |
$('.cls') | document.querySelectorAll('.cls') |
$('a').first() | document.querySelector('a') |
.find(sel) | el.querySelectorAll(sel) |
.closest(sel) | el.closest(sel) (IE 非対応) |
.parent() | el.parentElement |
.next() | el.nextElementSibling |
.children() | el.children |
.each(fn) | nodes.forEach(fn) |
.text() | el.textContent |
.html() | el.innerHTML |
.attr('href') | el.getAttribute('href') |
.addClass('x') | el.classList.add('x') |
.on('click', fn) | el.addEventListener('click', fn) |
jQuery → 素 JS の書き換え例
// jQuery
$('.btn').on('click', function() {
const $row = $(this).closest('.row');
$row.find('.title').text('Updated');
});
// 素 JS
document.querySelectorAll('.btn').forEach((btn) => {
btn.addEventListener('click', () => {
const row = btn.closest('.row');
row.querySelector('.title').textContent = 'Updated';
});
});
// Ajax: jQuery
$.getJSON('/api/users', function(data) { ... });
// 素 JS (fetch)
fetch('/api/users').then(r => r.json()).then(data => { ... });
FAQ
Q: jQuery はもう古い?
A: 新規プロジェクトでは React / Vue / Alpine.js / 素の JS が主流で、jQuery の出番は減っています。ただし既存 CMS(WordPress 等)では現役。
Q: $('div')[0] と $('div').get(0) の違いは?
A: 結果は同じ HTMLElement。get() は負インデックス対応(.get(-1) で末尾)の利点があります。
Q: 取得できなかったときの判定は?
A: if ($('.foo').length)。.length === 0 なら存在しない。素 JS なら document.querySelector が null を返すので if (el) で判定。
Q: 大量要素のループが遅い
A: 変数にキャッシュ、DOM 操作をまとめる($('<div>') で文字列を作って 1 度に append)、必要なら仮想 DOM フレームワークへ移行。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?