document.getElementsByTagName
関数を使用すると、指定したタグ名を持つ要素を取得することができます。
同じタグ名を持つ要素は複数存在する可能性があるので、戻り値は配列になります。
window.onload = function() {
var elems = document.getElementsByTagName('p')
console.log(elems);
};
document.getElementsByClassName
関数を使用すると、指定したクラス名が class
属性に含まれている要素を取得することができます。
そのような要素は複数存在する可能性があるので、戻り値は配列になります。
window.onload = function() {
var elems = document.getElementsByClassName('hoge')
console.log(elems);
};
document.getElementById
関数を使用すると、指定した ID を id
属性に持つ要素を取得することができます。
指定した ID を持つ要素が見つからない場合は null
を返します。
window.onload = function() {
var elem = document.getElementById('sample');
console.log(elem);
};
特定の ID を持つ要素は高々1つしか存在することができないので、getElementsByTagName
や getElementsByClassName
とは異なり、getElementById
は単一の要素を返すことに注意してください。
document
の代わりに、特定の要素に対して上記のメソッドを呼び出すようにすれば、その子要素だけを検索対象とすることができます。
下記の例では、まず ID で要素を検索し、次にタグ名による検索を行なっています。
<ul id="sample-data">
<li>AAA
<li>BBB
<li>CCC
</ul>
<script>
window.onload = function() {
var data = document.getElementById('sample-data');
var elems = data.getElementsByTagName('li');
console.log(elems);
};
</script>
CSS のセレクタ形式で要素を指定して取得したいときは、document.querySelector
関数や document.querySelectorAll
関数を使用します。
前者は最初に見つかった要素、後者は見つかった全ての要素を返します。
window.onload = function() {
var elem = document.querySelector('#sample');
console.log(elem);
};
window.onload = function() {
var elems = document.querySelectorAll('.sample');
console.log(elems);
};
window.onload = function() {
var elems = document.querySelectorAll('div.note');
console.log(elems);
};
window.onload = function() {
var elems = document.querySelectorAll('li:nth-child(even)')
console.log(elems);
};
querySelectAll
が使えるようになっています。セレクタ API だけのために jQuery を使用する必要はなくなりました。