👋

DOM操作チートシート

に公開

自分用チートシートです。

要素の取得

メソッド 説明
document.getElementById('id') 指定されたIDを持つ単一の要素を取得。 const el = document.getElementById('myId');
document.querySelector('selector') 指定されたCSSセレクタに一致する最初の要素を取得。 const el = document.querySelector('.myClass');
const el2 = document.querySelector('div.item');
document.querySelectorAll('selector') 指定されたCSSセレクタに一致するすべての要素のNodeList(配列ライク)を取得。 const els = document.querySelectorAll('li');
const els2 = document.querySelectorAll('div > p');
document.getElementsByClassName('class') 指定されたクラス名を持つすべての要素のHTMLCollection(配列ライク)を取得。 const els = document.getElementsByClassName('item');
document.getElementsByTagName('tag') 指定されたタグ名を持つすべての要素のHTMLCollectionを取得。 const els = document.getElementsByTagName('p');
element.querySelector('selector') 指定した要素の子孫からセレクタに一致する最初の要素を取得。 const child = parentEl.querySelector('span');
element.querySelectorAll('selector') 指定した要素の子孫からセレクタに一致するすべての要素を取得。 const children = parentEl.querySelectorAll('a');

要素の作成と追加/削除

メソッド 説明
document.createElement('tagName') 指定されたタグ名を持つ新しいHTML要素を作成。 const newDiv = document.createElement('div');
element.appendChild(childElement) 指定した要素の末尾に子要素を追加。 parentElement.appendChild(newDiv);
element.removeChild(childElement) 指定した要素の子要素を削除。 parentElement.removeChild(childToRemove);
element.insertBefore(newNode, referenceNode) referenceNodeの直前にnewNodeを挿入。 parentElement.insertBefore(newEl, existingEl);
element.replaceChild(newChild, oldChild) oldChildをnewChildに置き換える。 parentElement.replaceChild(newEl, oldEl);
element.cloneNode(deep) 要素のクローンを作成。deepがtrueなら子孫もクローン。 const clone = originalEl.cloneNode(true);

要素の内容操作

プロパティ/メソッド 説明
element.textContent 要素内のテキストコンテンツ(HTMLタグは無視される)。 el.textContent = '新しいテキスト';
console.log(el.textContent);
element.innerHTML 要素内のHTMLコンテンツ(HTMLタグも含まれる)。 el.innerHTML = '<strong>太字テキスト</strong>';
console.log(el.innerHTML);
element.outerHTML 要素自身を含むHTMLコンテンツ。 console.log(el.outerHTML); (要素自体も含む)

属性操作

メソッド 説明
element.getAttribute('attrName') 指定された属性の値を取得。 const src = imgEl.getAttribute('src');
element.setAttribute('attrName', 'value') 指定された属性の値を設定または更新。 imgEl.setAttribute('src', 'new_image.jpg');
element.removeAttribute('attrName') 指定された属性を削除。 imgEl.removeAttribute('alt');
element.hasAttribute('attrName') 指定された属性が存在するかどうかをチェック。 const hasAlt = imgEl.hasAttribute('alt');
element.id / element.className / etc. 一般的な属性はプロパティとして直接アクセス可能。 el.id = 'newId';
el.className = 'newClass';

スタイル操作

プロパティ 説明
element.style.propertyName インラインスタイルとしてプロパティにアクセス。CSSプロパティはキャメルケースで記述。 el.style.color = 'red';
el.style.backgroundColor = 'blue';
element.classList.add('className') クラスを追加。 el.classList.add('active');
element.classList.remove('className') クラスを削除。 el.classList.remove('active');
element.classList.toggle('className') クラスがあれば削除、なければ追加。 el.classList.toggle('hidden');
element.classList.contains('className') クラスが含まれているかチェック。 const hasClass = el.classList.contains('active');

イベント処理

メソッド 説明
element.addEventListener('event', handler) 指定したイベントが発生したときに実行される関数を登録。 btn.addEventListener('click', () => { /* 処理 */ });
element.removeEventListener('event', handler) 登録されたイベントリスナーを削除。 btn.removeEventListener('click', myHandler);
event.target イベントが発生した要素。 e.target.tagName;
event.preventDefault() イベントのデフォルト動作(例: リンクの遷移)をキャンセル。 e.preventDefault();
event.stopPropagation() イベントのバブリング(親要素への伝播)を停止。 e.stopPropagation();

DOMトラバーサル

プロパティ/メソッド 説明
element.parentNode 親要素。 const parent = childEl.parentNode;
element.children すべての子要素(要素ノードのみ)。HTMLCollectionを返す。 const children = parentEl.children;
element.firstElementChild 最初の子要素。 const first = parentEl.firstElementChild;
element.lastElementChild 最後の子要素。 const last = parentEl.lastElementChild;
element.nextElementSibling 次の兄弟要素。 const next = currentEl.nextElementSibling;
element.previousElementSibling 前の兄弟要素。 const prev = currentEl.previousElementSibling;

Discussion