appendChild() 예제
<ul id="code">
<li>HTML</li>
<li>CSS</li>
</ul>
<button onclick="hz()">클릭</button>
<script>
function hz() {
var node = document.createElement ("LI"); // 요소 생성
var textnode = document.createTextNode ("JS"); // 내용 생성
node.appendChild (textnode); // 요소에 내용 결합
document.getElementById("code").appendChild (node); // 기존요소에 생성요소 결합
}
</script>
결과보기
appendChild() 정의
1.
아래 용도로 사용 가능① 노드를 어떤 노드의 마지막 자식으로 추가. ② 어떤 요소를 한 요소에서 다른 요소로 이동시킬 때도 사용.
② 어떤 요소에 텍스트 추가할 때 사용
2. 텍스트 가진 단락을 문서에 추가하려면 먼저 text 생성 노드 이용해 text 생성 필요. text 생성해 단락에 붙인 다음, 그 단락을 문서에 추가.
3.
노드를 어떤 노드의 첫 자식 으로 추가하려면 아래 코드 이용.insertBefore()
5. 주요 최신 브라우저 모두 지원.
※ 노드 (Node) : 네트워크에서 연결 포인트 혹은 데이터 전송의 종점 혹은 재분배점
appendChild() 구문
node1 .appendChild (node2 )
[매개변수]node2
필수. 부착할 자식 노드 객체. (예) <li>JS</li>
cf.node1 자식노드인 node2가 추가되는 부모 요소 (예) <ul id="code"> ~ </ul>
appendChild() 예제1 - 자식요소 이동
<ul id="code1"><li>HTML</li><li>CSS</li></ul>
<ul id="code2"><li>PHP</li><li>SQL</li><li>JS</li></ul>
<button onclick="hz()">클릭</button>
<script>
function hz() {
var node = document.getElementById("code2").lastChild;
document.getElementById("code1").appendChild (node);
}
</script>
결과보기
※ code2의 마지막 자식을 code1의 마지막 자식으로 이동
appendChild() 예제2 - 요소 생성 후 텍스트 추가. 생성요소를 다른요소 자식으로 추가
<style>
#box {
border: 1px solid silver;
margin-bottom: 10px;
}
</style>
<div id="box">
홈짱닷컴
</div>
<button onclick="hz()">클릭</button>
<script>
function hz() {
var txt = document.createElement("P");
txt.innerHTML = "Homzzang.com";
document.getElementById("box").appendChild (txt);
}
</script>
결과보기
appendChild() 예제3 - 요소 생성 후 텍스트 추가. 생성요소를 body 태그에 바로 추가
<button onclick="hz()">클릭</button>
<script>
function hz() {
var x = document.createElement("P");
var t = document.createTextNode("홈짱닷컴 Homzzang.com");
x.appendChild(t);
document.body.appendChild (x);
}
</script>
appendChild() 예제 - 클래스 가진 자식요소 자동생성
<div class="grid-container">
</div>
<script>
// 아이템 1 ~ 16 생성
for (let i = 1; i <= 16; i++) {
const div = document.createElement("div");
div.textContent = i;
div.classList.add(`item${i}`);
document.querySelector(".grid-container").appendChild(div);
}
</script>
관련 메서드
element.hasChildNodes() - 자세히 보기
element.insertBefore()
element.removeChild()
element.replaceChild()
document.createElement()
document.createTextNode()
document.adoptNode()
document.importNode()
주소 복사
랜덤 이동