✍️ dom 조작을 통한 UI 구현 할 때, 많이 사용하는 속성과 메서드를 정리 해보았다.
elem.innterHTML
<div id='target'>결과 : </div>
console.log(target.innerHTML); // 결과 :
let result = target.innerHTML;
const fruits = ['mango', 'apple', 'banana', 'strawberry'];
fruits.forEach(el => {
result += `${el},` ;
});
result = result.slice(0, result.length-1);
target.innerHTML = result; //결과 : mango,apple,banana,strawberry
elem.textContent
<div id="question">너의 이름은</div>
<div id="answer1"></div>
<div id="answer2"></div>
let name = '<b>mangojang</b>';
window.prompt(question.textContent, name);
answer1.innerHTML = name; // **mangojang**
answer2.textContent = name;// <b>mangojang</b>
elem.hidden
<div id="target">보인다!</div>
target.hidden = true;
elem.id
let posturl = `/user/${target.id}`;
elem.href
<a>
alert(`${target.href}로 접속 하세요.`);
elem.value
<input>
, <select>
, <textarea>
<input id='phonenumber' type='number' value='01012345678'/>
const phonenumber = document.getElementById('phonenumber').value;
if(phonenumber.length < 11){
alert('다시 확인 해주세요');
document.getElementById('phonenumber').value = '';
}
elem.type
<input>
let checkboxes = [];
document.querySelectorAll('.inputs').forEach(el=>{
if(el.type ==='checkbox'){
checkboxes.push(el);
}
});
활용
HTML → javascript or javascript→HTML 넘기고 싶은 값을 표시 할 때 사용.
상태 값을 표시하여 상태 값에 따라 css를 적용 하는데 유용함.
<div class="order" data-state="new">
A new order.
</div>
<div class="order" data-state="pending">
A pending order.
</div>
<div class="order" data-state="canceled">
A canceled order.
</div>
.order[data-state="new"] {
color: green;
}
.order[data-state="pending"] {
color: blue;
}
.order[data-state="canceled"] {
color: red;
}
const state = docuemnt.querySelector('.order').getAttribute('data-state');
if (state ==='new'){
// .... state 에 따른 코드 진행
state.setAttribute('data-state', 'pending');
}
data-
data-state
는 elem.dataset.state
로 접근 가능.data-order-state
는 elem.dataset.orderState
로 접근 가능.elem.hasAttribute(name)
const foo = document.getElementById("foo");
if (foo.hasAttribute("bar")) {
// do something
}
elem.getAttribute(name)
let div1 = document.getElementById("div1");
let align = div1.getAttribute("align");
alert(align);
elem.setAttribute(name, value)
<button>Hello World</button>
const button = document.querySelector("button");
button.setAttribute("name", "helloButton");
button.setAttribute("disabled", "");
elem.removeAttribute(name)
document.getElementById("div1").removeAttribute("align");