노드 복제와 템플릿 Node clone, template
2022. 5. 30. 19:15ㆍStudy/JavaScript
참고 notion
JS
window.addEventListener("load", function(){
var notices = [
{id:5, title:"추가한당~~~", regDate:"2019-01-26", writerId:"newlec", hit:"0"},
{id:6, title:"복제한당~~", regDate:"2019-01-26", writerId:"newlec", hit:"0"}
]
var section = document.querySelector('#section7');
var noticeList = section.querySelector(".notice-list");
var tbodyNode = noticeList.querySelector('tbody');
var cloneBtn = section.querySelector(".clone-btn");
var templateBtn = section.querySelector(".template-btn");
cloneBtn.onclick = function(){
var trNode = noticeList.querySelector("tbody tr"); // querySelector는 첫번째 1개만 가져온다
var cloneNode = trNode.cloneNode(true); // false하면 껍데기만 복제한다.
// 데이텨 교체
var tds = cloneNode.querySelectorAll("td"); // td 5개가 셀렉된다
tds[0].innerText = notices[0].id;
tds[1].innerHTML = '<a href="#">' + notices[0].title + '</a>';
tds[2].innerText = notices[0].regDate;
tds[3].innerText = notices[0].writerId;
tds[4].innerText = notices[0].hit;
tbodyNode.append(cloneNode); // 마지막에 넣는다.
}
templateBtn.onclick = function(){
var template = section.querySelector("template"); // 템플릿 선택
var cloneNode = document.importNode(template.content, true); // 클론하지 않고, document에서 template를 임포트한다. true:전부, false:껍데기만
// 데이텨 넣기
var tds = cloneNode.querySelectorAll("td"); // td 5개가 셀렉된다
tds[0].innerText = notices[0].id;
// tds[1].innerHTML = '<a href="#">' + notices[0].title + '</a>';
var aNode = tds[1].children[0]; // a 선택
aNode.href = "#";
aNode.textContent = notices[0].title;
tds[2].innerText = notices[0].regDate;
tds[3].innerText = notices[0].writerId;
tds[4].innerText = notices[0].hit;
tbodyNode.append(cloneNode); // 마지막에 넣는다.
}
});
jquery
https://lynmp.com/ko/article/ucdff0097f8f
'Study > JavaScript' 카테고리의 다른 글
javascript url 파라미터 가져오기 (0) | 2022.06.27 |
---|---|
스크롤 방향에 따른 네비게이션 보이기, 감추기 (0) | 2022.06.02 |
Timer 타이머 (0) | 2022.05.18 |
ES6 배열 내장 함수 (0) | 2022.04.26 |
Momentum (0) | 2022.04.25 |