【JavaScript】特定の要素をフォーカスする方法

Webページを操作する際に、特定の要素にフォーカスを当てる必要がある場合があります。例えば、フォーム入力時に特定のフィールドに自動的にフォーカスを当てたり、特定のボタンを強調したりする場合です。この記事では、JavaScriptを使用して特定の要素をフォーカスする方法をいくつか紹介します。

IDで要素をフォーカスする

特定のIDを持つ要素をフォーカスするには、getElementByIdメソッドを使用します。この方法は、特定の一つの要素に対して簡単にフォーカスを設定することができます。

document.getElementById('element-id').focus();

使用例

<input type="text" id="username" placeholder="ユーザー名を入力してください">
<script>
  document.getElementById('username').focus();
</script>

クラス名で要素をフォーカスする

特定のクラス名を持つ最初の要素をフォーカスするには、querySelectorメソッドを使用します。この方法では、複数の要素が同じクラス名を持っていても、その中の最初の要素を簡単に選択できます。

document.querySelector('.class-name').focus();

使用例

<input type="text" class="input-field" placeholder="名前を入力してください">
<script>
  document.querySelector('.input-field').focus();
</script>

タグ名で要素をフォーカスする

特定のタグ名を持つ最初の要素をフォーカスするには、getElementsByTagNameまたはquerySelectorメソッドを使用します。フォームの最初の入力フィールドにフォーカスを当てたい場合に便利です。

document.getElementsByTagName('input')[0].focus();

使用例

<input type="text" id="username" placeholder="ユーザー名を入力してください">
<script>
  document.getElementById('username').focus();
</script>

タグ名で要素をフォーカスする

特定のタグ名を持つ最初の要素をフォーカスするには、getElementsByTagNameまたはquerySelectorメソッドを使用します。フォームの最初の入力フィールドにフォーカスを当てたい場合に便利です。

document.getElementsByTagName('input')[0].focus();

使用例

<input type="text" name="first-name" placeholder="名前">
<input type="text" name="last-name" placeholder="姓">
<script>
  document.getElementsByTagName('input')[0].focus();
</script>

属性セレクタで要素をフォーカスする

特定の属性を持つ要素をフォーカスするには、querySelectorメソッドを使用します。この方法では、属性セレクタを使って特定の要素を選択できます。

document.querySelector('[name="element-name"]').focus();

使用例

<input type="text" name="email" placeholder="メールアドレスを入力してください">
<script>
  document.querySelector('[name="email"]').focus();
</script>

特定の条件を満たす要素をフォーカスする

より複雑な条件を満たす要素をフォーカスする場合は、querySelectorを使ったCSSセレクタを活用します。

document.querySelector('input[type="text"].class-name').focus();

使用例

<input type="text" class="input-field" placeholder="テキスト入力">
<input type="text" class="input-field special" placeholder="特別な入力">
<script>
  document.querySelector('input[type="text"].special').focus();
</script>