要素の選択方法としては、以下のように色々なバリエーションがある。
ちなみに、タグのさらに属性を取得するには
エレメント.getAttribute("属性名")や
エレメント.dataset.dataを除いた属性名等を利用する。
1.ID名から取得する方法
document.getElementById("ID名");
2.名前から取得する方法
<div name="test"></div>
・document.test;
・document.getElementsByName("名前");
3.タグの種類から取得する方法
・var test = document.getElementsByTagName("li");
li.item(i);//<-liのi番目の要素。
・var table = document.all.tags("table"); //document.all.tagsからアクセスする方法。
table.rows[0].cells[0].innerText; //テーブルの要素にアクセスできる。
4.クラス名から取得する方法
var test = document.getElementsByClassName("クラス名");
5.DOM要素として取得方法
・document.form['連想名'].elements[i];//<-elements[i]は適宜変更
・document.forms('連想名');
・document.body;//<-HTMLBodyElementを取得。
6.親ノードや子ノードを辿る方法
var test = document.getElementById("sample");
var test-child = test.childNodes; //子ノードの取得
alert(test-child[0].nodeValue;) //ノードの値の表示。子ノードとかはタグで囲まれるelementだけでなくテキストデータも子ノードとみなすことに注意。
閉じないinputタグのようなものには子ノードは存在しない。次の要素等を示すnextSibling等で値を取るなりしよう。
childNodes等を活用した複雑なケースは
こちらを参照。
7.XPathを使う
<script内の記述>
var node = document.evaluate("//div[@id='test1']/input[@class='class1']", //<-divのidがtest1でその下のinputタグのクラスがclass1のものを取得
document,
null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null
);
alert(node.snapshotItem(0).value); //<-下のようにhtmlを記述すると、test2-classt表示される。
<htmlの記述>
<div id="test1">
<input type="text" value="test2">
<input type="text" class="class1" value="test2-class">
</div>
8.CSSセレクタを使う方法
document.querySelector(".test"); //クラス名がtestのものを取得する。
最終更新:2021年07月24日 11:16