본문 바로가기
JS

[JS] append(), appendChild()

by 리코더23 2023. 5. 8.

 

JavaScript에서 만든 것을 HTML에 넣는 방법

 


createElement() : 요소를 만드는 메서드
const hello = document.createElement( "h1" )
// <h1></h1> 코드가 생성된다. (생성만 됨, 아직 사용할 수 있는 상태는 아님)

 

append() : 선택한 요소 안에 자식요소를 추가 (1)
  • append 메서드는 한번에 여러 개의 자식 요소 설정이 가능함 ( 노드 객체, 문자열 )
  • append 메서드는 반환 데이터가 없음
const parent = document.createElement('div');
const childA = document.createElement('h1');
const childB = document.createElement('span');
childA.textContent = 'hello';

parent.append(childA, '안녕', childB);	// 
// 출력 결과 :
// <body>
//  <div>
//   <h1>hello</h1>
//   안녕
//   <span></span>
//  </div>
// </body>

 

 

appendChild() : 선택한 요소 안에 자식요소를 추가 (2)
  • appendChild 메서드는 노드 객체 추가만 가능, 기본적으로 맨뒤에 위치
  • appendChild 메서드는 추가한 자식 노드를 반환함
const parent = document.createElement('div');
const childA = document.createElement('h1');
const childB = document.createElement('span');
childA.textContent = 'hello2'

parent.appendChild(childA);
parent.appendChild(childB);

// 출력 결과 :
// <body>
//  <div>
//   <h1>hello2</h1>
//   <span></span>
//  </div>
// </body>

 

 

prepend() : 요소의 맨 앞에 자식요소를 추가

 

insertBefore()

: appendChild()와 비슷하지만 전달받는 인자가 2개이다.
첫번째는 삽입하려는 노드. 두번째는 삽입의 기준이 되는 노드로, 새 노드는 이 앞에 놓이게 된다. (= 삽입할 노드의 다음 노드)
두번째 인자가 null일 경우 appendChild()와 같이 작동해 맨 뒤에 삽입된다.

const h2 = document.querySelector("#clock")
document.body.insertBefore(bgImage, h2);
// 두개의 인자중에 앞의 bgImage는 새로운 노드, 즉 추가하고 싶은 노드이고 h2는 참조할 노드.
// h2요소 앞에 bgImage가 추가되게 된다.

 

createTextNode() : createElement()를 통해 만든 요소 안에 글자 추가
const hello = document.createElement( "h1" )
hello.createTextNode("이건 새로운 h1입니다")

 


JS에서 createElement()와 appendChild() 를 통해 이미지를 삽입하기
// 1. 가지고 있는 이미지파일과 동일한 이름의 요소들의 배열인 변수 만들어준다.
const images = ["0.jpg", "1.png", "2.png"];

// 2. 배열 요소들이 랜덤하게 반환되는 chosenImage 라는 변수를 만든다.
const chosenImage = images[Math.floor(Math.random() * images.length)];

// 3. createElement() 를 통해 img태그 모습을 가진 코드의 bgImage 라는 변수를 만든다.
const bgImage = document.createElement("img");

// 4. bgImage.src = img/${chosenImage}. 즉 HTML에서 img태그를 작성하듯이 모습을 똑같이 만들어준다.
bgImage.src = `img/${chosenImage}`;

document.body.appendChild(bgImage);
// console.log(bgImage) 출력값 : <img src="img/0.jpg>

 

 

 

'JS' 카테고리의 다른 글

[jQuery] 이벤트 위임(Event Delegation)  (0) 2023.05.12
[jQuery] 선택자, 메소드 정리  (1) 2023.05.11
[jQuery] 입력 데이터 테이블에 추가하기  (0) 2023.05.11

댓글