ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?