セレクタメモ。
Jquery、CSSにも応用可能です。
注意点
説明は基本的にJavascriptの「querySelector」で説明させていただきます。
JqueryやCSSのセレクタにも対応出来ます。
// この形式で説明
document.querySelector("#input1");
エスケープ文字があり以下の文字を指定する場合は\を付けてエスケープする必要があります。
- .→\.
- ,→\,
- :→\:
- #→\#
- [→\]
- ]→\[
基本
基本的なセレクタの指定方法
// すべての要素を取得
document.querySelector("*");
// 指定のタグを取得
document.querySelector("p"); // pタグ取得
// 指定のクラスを取得
document.querySelector(".sampleClass"); // class="sampleClass"
// 指定のIDを取得
document.querySelector("#sampleId"); // id="sampleId"
// 指定の属性を持つものを取得(aタグ タイトル属性持ち)
document.querySelector("a[title]"); // <a title="title">hoge</a>
// 指定の属性の値を持つものを取得(inputタグ name=hoge)
document.querySelector("input[name=hoge]"); // <input name="hoge"></input>
クラスは「.」、IDは「#」を使って指定可能です。
複合
AND条件とOR条件の2種類があります。
AND
空白を入れない所がポイントになります。
// pタグのsampleClassを取得
document.querySelector("p.sampleClass"); // <p class="sampleClass">hoge</p>
// pタグのsampleIdを取得
document.querySelector("p#sampleId"); // <p id="sampleId">hoge</p>
OR
カンマ「,」で区切ります。
// クラス sampleClass、ID sampleIdを取得
document.querySelector(".sampleClass #sampleId");
// <p class="sampleClass">hoge</p>
// <p id="sampleId">hoge</p>
関係性
親子関係
// divタグが親のpタグを取得
document.querySelector("div>p");
子孫
// divタグが先祖のpタグを取得
document.querySelector("div p");
兄弟
// divタグの後にあるpタグを取得(直後でなくても取得)
document.querySelector("div ~ p");
隣接兄弟
// divタグの直後にあるpタグを取得
document.querySelector("div + p");
条件
// タグ="input" and name属性を持つ
document.querySelector('input[name]');
// タグ="input" and name属性が"hoge"と一致
document.querySelector('input[name="hoge"]');
// タグ="input" and name属性が"hoge"と不一致
document.querySelector('input[name!="hoge"]');
// タグ="input" and name属性が"hoge"と先頭一致
document.querySelector('input[name^="hoge"]');
// タグ="input" and name属性が"hoge"と末尾一致
document.querySelector('input[name$="hoge"]');
// タグ="input" and name属性が"hoge"と部分一致
document.querySelector('input[name*="hoge"]');
疑似クラス
良く使うやつをご紹介。
こちらに記載がない疑似クラスを参考にしてください。
入力状態
// 入力可能テキストボックス
document.querySelector('input[type="text"]:enabled');
// 入力禁止テキストボックス
document.querySelector('input[type="text"]:disabled');
選択状態
// 選択済チェックボックス
$('input[type="checkbox"]:checked');
// 選択済ラジオボタン
$('input[type="radio"]:checked');
// リストボックス・コンボボックス内の選択済要素
$('select > option:selected');
可視状態
$('div:hidden'); // 不可視状態になっているdiv要素
$('div:visible'); // 可視状態になっているdiv要素
参考
- CSS セレクター - CSS: カスケーディングスタイルシート | MDN
- Document.querySelector() - Web API | MDN
- Document.querySelectorAll() - Web API | MDN
まとめ
CSSの疑似要素以外が作れるらしいので、CSS セレクターを参考にしてみてください。

0 件のコメント :
コメントを投稿