■ はじめに
の続き。 「1)オブジェクト取得系」を掘り下げる
目次
【1】getElementById() 【2】getElementsByTagName() 【3】querySelectorAll() 【4】querySelector()
【1】getElementById()
* 指定したIDの要素のオブジェクト取得 => 詳細は以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2011/12/29/200502
【2】getElementsByTagName()
* 指定したタグのエレメント取得。 * タグ版・getElementById()みたいな感じ。
サンプル
https://dk521123.hatenablog.com/entry/2022/11/24/230044
// より抜粋 const inputTexts = document.getElementsByTagName("input"); for(let i = 0 ; i < inputTexts.length ; i ++ ) { console.log(`Value = ${inputTexts[i].value}`); if (!inputTexts[i].value) { canAdd = false; break; } }
【3】querySelectorAll()
* 指定したセレクタと一致した全要素を返す
https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll
https://1-notes.com/javascript-queryselectorall-and-queryselector/
* セレクタについては、以下の関連記事を参照のこと
セレクタ
https://dk521123.hatenablog.com/entry/2021/02/27/000000
1)サンプル
* 以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2022/11/28/000000
【4】querySelector()
* 指定したセレクタと一致した初めの要素を返す * 1要素版・querySelectorAll()みたいな感じ。
https://developer.mozilla.org/ja/docs/Web/API/Document/querySelector
1)サンプル
<!DOCTYPE html> <html> <head> <title>test</title> </head> <body> <button id="btn1">Click me!!</button> <p class="p1">Click : 0</div> </body> <script> var index = 0; const button = document.querySelector('#btn1'); button.addEventListener('click', function(event) { index = index + 1; const result = document.querySelector('.p1'); result.innerHTML = `Click : ${index}`; }); </script> <html>
例2:動的に生成したオブジェクトの値が取得できるかを試す
<!doctype html> <html> <head> </head> <body> <div id="inputDiv"></div> <button type="button" onclick="demoForCreateElement()">Press first. demoForCreateElement</button><br /> <input id="test" class="testClass" type="text" maxlength="100" size="30" placeholder="ex. item1/#item1/.itemClass1"><br /> <button type="button" onclick="demoForGetElementById()">demoForGetElementById</button> <div id="result1">Result</div> <button type="button" onclick="demoForQuerySelector()">demoForQuerySelector</button> <div id="result2">Result</div> </body> <script> var index = 0; function demoForCreateElement() { index = index + 1; const newInput = document.createElement("input"); newInput.setAttribute("id", `item${index}`); newInput.setAttribute("name", `itemName${index}`); newInput.setAttribute("class", `itemClass${index}`); newInput.setAttribute("type", "text"); newInput.setAttribute("type", "text"); newInput.setAttribute("maxlength", "5"); newInput.setAttribute("size", "10"); const inputDiv = document.getElementById("inputDiv"); inputDiv.appendChild(newInput); } function demoForGetElementById() { const inputTest = document.getElementById("test"); const targetId = inputTest.value.toString(); console.log(`targetId = ${targetId}`); const targetInput = document.getElementById(targetId); console.log(`targetInput = ${targetInput}`); var result = document.getElementById("result1"); result.innerHTML = targetInput.value; } function demoForQuerySelector() { const inputTest = document.getElementById("test"); const targetId = inputTest.value.toString(); console.log(`targetId = ${targetId}`); const targetInput = document.querySelector(targetId); console.log(`targetInput = ${targetInput}`); var result = document.getElementById("result2"); result.innerHTML = targetInput.value; } </script> </html>
関連記事
DOM ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2011/01/07/012520
DOM ~ 基本編 / getElementById() ~
https://dk521123.hatenablog.com/entry/2011/12/29/200502
DOM ~ 基本編 / オブジェクト作成 ~
https://dk521123.hatenablog.com/entry/2022/11/19/000000
DOM ~ 基本編 / オブジェクト操作 ~
https://dk521123.hatenablog.com/entry/2011/01/09/155824
JavaScript覚書
https://dk521123.hatenablog.com/entry/2010/01/15/191626
イベント ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/11/20/000000
動的に生成したinputタグを考える
https://dk521123.hatenablog.com/entry/2022/11/24/230044
セレクタ
https://dk521123.hatenablog.com/entry/2021/02/27/000000