jQuery :first-of-type セレクター - 同一階層の最初の要素を正確に指定する
概要: :first-of-type セレクターは、指定されたタイプの最初の要素を選択します。
副題
1. 構文と使い方
- 構文: `:first-of-type`
- 説明: このセレクターは、親要素内で指定されたタイプの最初の要素に一致します。例えば、すべての p 要素の中で最初に現れる p 要素を選択するには、`p:first-of-type` を使用します。
- バージョン: jQuery 1.0
2. サンプルコード
- 各 div 要素内の最初の p 要素を選択する:
<div>
<p>最初の p 要素。</p>
<p>2番目の p 要素。</p>
</div>
<div>
<p>最初の p 要素。</p>
</div>
$("div p:first-of-type").css("color", "red");
- その他の例: この記事では、他のセレクターと組み合わせて使用するなど、他の例も紹介します。 詳細については、原文を参照してください。
3. :first-child セレクターとの違い
- `:first-of-type` セレクターは、指定されたタイプの最初の要素を選択します。同一階層内での位置は関係ありません。
- `:first-child` セレクターは、各親要素の最初の 자식要素を選択します。タイプは関係ありません。
セレクター | 説明 |
---|---|
:first-of-type |
指定されたタイプの最初の要素を選択します。 |
:first-child |
各親要素の最初の 자식要素を選択します。 |
4. ブラウザのサポート
このセレクターは、すべての主要なブラウザと互換性があります。
まとめ
jQuery の :first-of-type セレクター
:first-of-type セレクターは、jQuery で要素を特定するのに便利なツールです。特に、同じタイプの要素が複数ある場合に、目的の要素を正確に選択できます。
Q&A
Q1: :first-of-type セレクターと :first-child セレクターの使い分け方を教えてください。
A1:
-
:first-of-type: 特定の HTML 要素タイプの最初の要素を選択したい場合に使用します。例えば、複数の <p> 要素がある中で、最初の <p> 要素だけを選択したい場合に便利です。
-
:first-child: 親要素の最初の要素を選択したい場合に使用します。要素のタイプは問いません。
Q2: :first-of-type セレクターは、ネストされた要素にも使用できますか?
A2: はい、ネストされた要素にも使用できます。親要素を基準に、指定されたタイプの最初の要素が選択されます。
例
<div>
<p>段落1</p>
<span>スパン1</span>
<p>段落2</p>
<span>スパン2</span>
</div>
この HTML に対して、 $("div span:first-of-type") と指定すると、「スパン1」を含む <span> 要素が選択されます。
Q3: :first-of-type セレクターをサポートしていないブラウザでは、どのように対応すればよいですか?
A3: :first-of-type セレクターは、すべての主要なブラウザの最新バージョンでサポートされています。ただし、古いブラウザを使用している場合は、jQuery のバージョンを確認するか、他のセレクターと JavaScript を組み合わせて目的の要素を選択する必要があります。
古いブラウザへの対応例
// jQuery のバージョンが古い場合の代替手段
if (!Modernizr.csspseudos) {
$('div').each(function() {
$(this).find('p:first').addClass('first-paragraph');
});
}
補足: :first-of-type セレクターは、CSS3 で導入されたセレクターです。jQuery を使用することで、クロスブラウザに対応した形で利用できます。