セレクタメモ。
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 件のコメント :
コメントを投稿