Language/JavaScript
Node 선택 방법
nayoon030303
2021. 5. 13. 13:54
JavaScript에서 Node를 선택하는 다양한 방법들이 있습니다.
부모 자식 관계를 이용할 수도 있고 직접적으로 id, class, tag 등을 이용하여 Node를 선택할 수 있습니다.
- getElemetsByTagName()
- getElementsByClassName() && getElementById()
- querySelector()
getElemetsByTagName()
HTML 태그를 가져옵니다.
<section id = "sec1">
<h1></h1>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</section>
var lis = sec1.getElemetsByTagName("li");
lis[0].textContent = "Hello";
textContent: 안쪽에 있는 text
function ex1(){
let section2 = document.getElementById("section-2");
let inputs = section2.getElementsByTagName("input");
let txtX = inputs[0];
let txtY = inputs[1];
let btnAdd = inputs[2];
let textSum = inputs[3];
btnAdd.onclick = function(){
let x = parseInt(txtX.value);
let y = parseInt(txtY.value);
console.log(x+y);
textSum.value = x+y;
};
}
input에 순서 또는 개수가 바뀌면 배열에 순서도 바뀌게 됩니다.
getElementsByClassName() && getElementsById()
function ex2(){
//Ex 2: 엘리번트 선택방법 개선하기
let section2 = document.getElementById("section-2"); //id
let txtX = section2.getElementsByClassName("txt-x")[0]; //class
let txtY = section2.getElementsByClassName("txt-y")[0];
let btnAdd = section2.getElementsByClassName("add-btn")[0];
let textSum = section2.getElementsByClassName("txt-sum")[0];
btnAdd.onclick = function(){
let x = parseInt(txtX.value);
let y = parseInt(txtY.value);
console.log(x+y);
textSum.value = x+y;
};
}
getElementsByClassName은 배열이기 때문에 [0]을 해주어야 합니다.
querySelector()
function ex3(){
//Ex 3: querySelector 이용하기
let section3 = document.querySelector("#section-3"); //id
let txtX = section3.querySelector(".txt-x"); //class
let txtY = section3.querySelector(".txt-y");
let btnAdd = section3.querySelector(".add-btn");
let textSum = section3.querySelector(".txt-sum");
btnAdd.onclick = function(){
let x = parseInt(txtX.value);
let y = parseInt(txtY.value);
console.log(x+y);
textSum.value = x+y;
};
}