ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
はじめに
本ページは、JavaScript を書いていて「こういうの、よく書くな」というパターンをそのままコピペで動く小さなレシピ集としてまとめたものです。各レシピは ES2015(ES6)以降のモダン記法を前提にしています。
1. DOM の取得と書き換え
// 要素の取得
const btn = document.getElementById('myBtn');
const items = document.querySelectorAll('.item');
// テキストを書き換え
document.getElementById('title').textContent = '新タイトル';
// HTML を差し込む(XSS 注意)
document.getElementById('box').innerHTML = '<p>こんにちは</p>';
// クラスの付け外し
btn.classList.add('active');
btn.classList.remove('active');
btn.classList.toggle('active');
// 属性
btn.setAttribute('disabled', 'true');
btn.removeAttribute('disabled');
2. クリックイベントを付ける
// 単発
document.getElementById('btn').addEventListener('click', () => {
alert('クリックされた');
});
// 複数要素にまとめて
document.querySelectorAll('.item').forEach((el, i) => {
el.addEventListener('click', () => {
console.log(`${i} 番目がクリックされた`);
});
});
// イベント委譲(動的に増える子要素にも対応)
document.getElementById('list').addEventListener('click', (e) => {
if (e.target.matches('li.item')) {
console.log('リスト項目:', e.target.textContent);
}
});
3. 表示/非表示を切り替える
const box = document.getElementById('box');
// CSS で .hidden { display: none } を用意しておく
function show() { box.classList.remove('hidden'); }
function hide() { box.classList.add('hidden'); }
function toggle() { box.classList.toggle('hidden'); }
4. フォーム入力を取得・検証する
const form = document.getElementById('myForm');
form.addEventListener('submit', (e) => {
e.preventDefault(); // ページ遷移を止める
// 個別取得
const name = form.elements['name'].value.trim();
const age = Number(form.elements['age'].value);
// FormData で一括
const data = Object.fromEntries(new FormData(form));
console.log(data); // { name: 'taro', age: '20', ... }
// 簡易検証
if (!name) {
alert('名前を入力してください');
return;
}
});
5. 配列処理(map / filter / reduce)
const nums = [1, 2, 3, 4, 5];
// 全要素を 2 倍に
const doubled = nums.map(n => n * 2); // [2,4,6,8,10]
// 偶数だけ抽出
const evens = nums.filter(n => n % 2 === 0); // [2, 4]
// 合計
const sum = nums.reduce((acc, n) => acc + n, 0); // 15
// 重複排除
const uniq = [...new Set([1,1,2,3,3])]; // [1,2,3]
// オブジェクト配列のソート
const users = [{age:30},{age:20},{age:25}];
users.sort((a, b) => a.age - b.age);
6. 非同期 API 通信(fetch + async/await)
async function loadUser(id) {
try {
const res = await fetch(`/api/users/${id}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const user = await res.json();
return user;
} catch (e) {
console.error('取得失敗', e);
return null;
}
}
// 使い方
loadUser(123).then(u => console.log(u));
7. localStorage で値を保存
// 文字列で保存
localStorage.setItem('theme', 'dark');
const theme = localStorage.getItem('theme'); // 'dark'
// オブジェクトは JSON 化
const profile = { name: 'taro', age: 20 };
localStorage.setItem('profile', JSON.stringify(profile));
const p = JSON.parse(localStorage.getItem('profile'));
// 削除
localStorage.removeItem('theme');
localStorage.clear(); // 全削除
8. デバウンス(連打抑制)
function debounce(fn, delay = 300) {
let timer;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => fn.apply(this, args), delay);
};
}
// 検索ボックスの onInput でリクエスト連打を抑える
input.addEventListener('input', debounce((e) => {
fetch('/search?q=' + e.target.value);
}, 400));
9. クリップボードにコピー
async function copy(text) {
try {
await navigator.clipboard.writeText(text);
alert('コピーしました');
} catch (e) {
console.error(e);
}
}
10. 日付の整形
const d = new Date();
// YYYY-MM-DD
const ymd = d.toISOString().slice(0, 10);
// 日本語フォーマット
const jp = d.toLocaleDateString('ja-JP', {
year: 'numeric', month: 'long', day: 'numeric', weekday: 'long'
});
// 加算
const next = new Date(d);
next.setDate(d.getDate() + 7);
11. URL クエリパラメータの取得
// ?id=123&color=red
const params = new URLSearchParams(location.search);
const id = params.get('id'); // '123'
const all = Object.fromEntries(params);
関連
- JavaScript — 親カテゴリ
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
同階層のページ
- 環境構築
- 文法
- プラットフォーム
- ライブラリ
- フレームワーク
- テンプレートエンジン
- ビルトインオブジェクト
- エラー一覧
- よくある事例
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?