内容
javascript, jQuery において,DOM要素の取得方法のメモ書き.
テストしてないものあり.
テストしたものは,Firefox40.0 でのみ.環境によっては書いてるとおりにならないかも.
jQuery のバージョンは 2.1.4
javascriptにて
関連
function | 引数の形式 | 戻り値 | 戻り値の型 |
---|---|---|---|
document.getElementById(id) |
id属性の文字列 (id ) |
id をid属性に持つ最初の要素 |
Node |
element.getElementsByClassname(class) 1
|
class属性の文字列 (class ).スペースで区切って複数指定できる. |
element の子孫要素でclass の全てをclass属性に持つ要素のリスト |
NodeList2 |
element.getElementsByTagName(tag) |
tag名の文字列 (tag ) |
element び子孫要素でtag である要素のリスト |
NodeList |
element.querySelector(selector) 3
|
cssセレクタ文字列 (selector ) |
element の子要素でselector にマッチする最初の要素 |
Node |
element.querySelectorAll(selector) 3
|
cssセレクタ文字列 (selector ) |
element の子要素でselector にマッチする要素のリスト |
Nodeの配列 |
jQueryにて
jQuery オブジェクトの取得について (多分こんな感じ)
下の表の方法を使って要素を取得した場合,jQueryオブジェクトとして取得される.
要素は,取得したオブジェクトの数値インデックスのプロパティにDOMノードとして格納される.
例えば要素が一つだけなら,取得したjQueryオブジェクト[0]
にそのDOMノードが格納される.
要素が二つなら,取得したjQueryオブジェクト[0]
と取得したjQueryオブジェクト[1]
にそれらのDOMノードが順に格納される.
jQueryオブジェクト取得手段 4
function | 引数の形式 | 取得される要素 |
---|---|---|
$(selector[, context]) |
cssセレクタ文字列 (selector ), document かDOMノードかjQueryオブジェクト (context ) |
context を指定した場合はその子孫要素の,そうでなければdocument 内の,selector にマッチする要素のjQueryオブジェクト |
jQuery(selector[, context]) |
cssセレクタ文字列 (selector ), document かDOMノードかjQueryオブジェクト (context ) |
context を指定した場合はその子孫要素の,そうでなければdocument 内の,selector にマッチする要素のjQueryオブジェクト |
$(element) 5
|
Node (element ) |
element のjQueryオブジェクト |
$(elements) 5
|
NodeList (elements ) |
elements のjQueryオブジェクト6
|
jQueryオブジェクト.find(selector) |
cssセレクタ文字列 (selector ) |
jQueryオブジェクト の子孫要素でselector にマッチする要素のjQueryオブジェクト |
注意として,cssセレクタの要素を直接指定する部分7に id属性 を指定した場合は,規約に従わずに同じ id属性 を複数箇所で使用していた場合でも,最初の一つの要素にしかマッチしない.
しかし,cssセレクタの,求める要素の親要素を限定する部分に id属性 を指定した場合,同じ id属性 を複数箇所で使用していると,それぞれの親要素の子孫要素が検索される.
規約違反前提なので,ここは環境によって違うかも.
example.html
<div id='duplication'>
$('#duplication') にマッチ
<p>$('#duplication p') にマッチ</p>
</div>
<div id='duplication'>
$('#duplication') ではマッチしない
<p>$('#duplication p') にマッチ</p>
</div>