data属性要素選択 JavaScript例
JavaScriptでjQueryを使わずに「data-xxx」属性を持つ要素をすべて選択する
HTML
<div data-myattribute="value1">要素1</div>
<p data-myattribute="value2">要素2</p>
<span data-anotherattribute="value3">要素3</span>
JavaScript
const elementsWithAttribute = document.querySelectorAll('[data-myattribute]');
// すべての要素をループして処理
elementsWithAttribute.forEach(element => {
console.log(element.getAttribute('data-myattribute'));
});
解説
document.querySelectorAll()
- このメソッドは、指定されたセレクタに一致する要素のノードリストを返します。
'[data-myattribute]'
は、data-myattribute
属性を持つすべての要素を指定するセレクタです。
forEach()
elementsWithAttribute
は、ノードリストであるため、配列のように要素を反復処理することができます。forEach()
メソッドを使用して、各要素に対して処理を実行します。
getAttribute()
getAttribute()
メソッドは、指定された属性の値を取得します。- この例では、
data-myattribute
属性の値を取得し、コンソールに出力しています。
ポイント
forEach()
を使用して、ノードリストの各要素に対して処理を適用します。querySelectorAll()
を使用することで、指定されたセレクタに一致する要素を効率的に取得できます。- jQueryを使用せずに純粋なJavaScriptで操作しています。
「data-xxx」属性を持つ要素をすべて選択する JavaScript例 (jQuery不使用)
<div data-myattribute="value1">要素1</div>
<p data-myattribute="value2">要素2</p>
<span data-anotherattribute="value3">要素3</span>
const elementsWithAttribute = document.querySelectorAll('[data-myattribute]');
// すべての要素をループして処理
elementsWithAttribute.forEach(element => {
console.log(element.getAttribute('data-myattribute'));
});
data属性要素選択 JavaScript例
<div data-my-data="value1">要素1</div>
<p data-another-data="value2">要素2</p>
<span data-custom-data="value3">要素3</span>
const elementsWithCustomData = document.querySelectorAll('[data-custom-data]');
// すべての要素をループして処理
elementsWithCustomData.forEach(element => {
const dataValue = element.dataset.customData;
console.log(dataValue);
});
dataset プロパティ
dataset
プロパティは、要素のすべてのカスタムデータ属性をオブジェクトとしてアクセスできるようにします。element.dataset.customData
は、data-custom-data
属性の値を取得します。
- 慣例的に、カスタムデータ属性の名前は大文字で始まることが多いですが、必ずしも必要ではありません。
dataset
プロパティを使用して、カスタムデータ属性に簡単にアクセスできます。
querySelector() を使用して1つの要素を選択する
const firstElementWithAttribute = document.querySelector('[data-myattribute]');
console.log(firstElementWithAttribute);
querySelector()
は、指定されたセレクタに一致する最初の要素を返します。
getElementsByClassName() を使用してクラス名で要素を検索する
const elementsWithClass = document.getElementsByClassName('my-class');
console.log(elementsWithClass);
- 要素にクラス名を設定して、
getElementsByClassName()
を使用して検索できます。
getElementById() を使用してIDで要素を検索する
const elementById = document.getElementById('my-id');
console.log(elementById);
const elementsByName = document.getElementsByName('my-name');
console.log(elementsByName);
カスタム関数を使用して要素を検索する
function getElementsByAttribute(attributeName) {
const elements = [];
const allElements = document.getElementsByTagName('*');
for (let i = 0; i < allElements.length; i++) {
if (allElements[i].hasAttribute(attributeName)) {
elements.push(allElements[i]);
}
}
return elements;
}
const elementsWithAttribute = getElementsByAttribute('data-myattribute');
console.log(elementsWithAttribute);
- この関数は、指定された属性を持つすべての要素を検索します。
javascript html dom