const videos = document.querySelectorAll('video');
const videos = { video1: document.getElementById('video1'), video2: document.getElementById('video2'), video3: document.getElementById('video3'), };
1. const videos = document.querySelectorAll('video'); の場合
取得方法:
このコードはすべての<video>要素をNodeListとして取得します。
NodeListは配列のように動作し、インデックス(videos[0]など)を使って各<video>要素にアクセスできます。
特徴:
動的に動画の数が増えたり減ったりしても対応可能です。例えば、新たに<video>タグを追加しても、このコードで取得できます。
ループ処理(forEachなど)に適しており、簡単に全ての動画を操作できます。
2. const videos = { video1: document.getElementById('video1'), ... }; の場合
取得方法:
このコードは特定の<video>要素をオブジェクトのプロパティとして格納します。
動画を明示的に識別し、プロパティ名(videos.video1など)でアクセスできます。
特徴:
動的ではなく、手動で<video>要素を管理する形になります。例えば、新しい動画を追加するたびに、このオブジェクトにプロパティを追加する必要があります。
直接的に管理するため、動画の名前(IDなど)を使って識別しやすくなります。
特性 | querySelectorAll | オブジェクト (videos) |
---|---|---|
対象の取得方法 | <video>タグ全体を一括取得 | 明示的にIDを指定して取得 |
動的な対応 | 動画の数が変わっても柔軟 | 動画を増やしたら手動で追加入力が必要 |
アクセス方法 | インデックスで参照 (videos[0]) | キーで参照 (videos.video1) |
ループ処理との相性 | 適している | 手動管理に向いている |