答えは、ワイルドカードを使用getElementsByClassName()
しgetElementById()
ないためです。それらはそのように仕様化または作成されていないため、そのように使用することはできません。
さらにgetElementById()
、要素の配列ではなく単一のDOM要素のみを返すため、そのようには機能しません。
クラス名を持つすべての要素、または ID を持つすべての要素を取得したい場合は、次のように実行できます。
function getAllElementsWithAttribute(attr) {
var results = [];
var all = document.getElementsByTagName("*");
for (var i = 0, len = all.length; i < len; i++) {
if (all[i][attr]) {
results.push(all[i]);
}
}
return(results);
}
次に、これを使用してクラス名を持つすべての要素を取得できます。
var items = getAllElementsWithAttribute("className");
または、次の ID を持つすべての要素を取得します。
var items = getAllElementsWithAttribute("id");