본문 바로가기

프로그래밍 언어/JavaScript

[JS] JavaScript 로 HTML 요소 동적 생성

반응형

 

1. 요소(Element) 생성

 

HTML 태그 요소 중에 만들고 싶은 요소를 생성한다.

 

(1) createElement()

 document.createElement('[원하는 요소]') 

const newP = document.createElement( 'p' ) // 요소 p 생성
const newDiv = document.createElement( 'div' ) // 요소 div 생성

 

avaScript에서는 문자열을 정의할 때 작은 따옴표( ' )나 큰 따옴표( " ) 모두 사용할 수 있습니다.
어떤 것을 사용할지는 주로 개인적이거나 팀의 기호에 따라 결정되며, 기능적으로는 동일합니다.

 


2-1. 부모자식 관계 만들기 (부모 연결하기)

 

요소를 만들었다면, 어디에 해당 요소를 추가할지 알기 위해 다른 요소와 연결이 필요하다. 

여기선 부모와 연결하는 방법에 대해 설명한다.

 

(1) append()

 

 [부모요소].append([자식요소]) 

document.body.append(newP); // 자식 연결

 

특징

  • 컨텐츠를 선택된 요소 내부의 끝부분에 삽입 (부모요소의 자식 중 가장 끝 자식 요소로 추가)
  • 자식요소로 요소 외에 문자열을 사용할 수도 있다.
const newP = document.createElement( 'p' ) // 요소 p 생성
newP.append('문자열 추가'); // 자식 연결

// 결과 : <p>문자열 추가</p>
  • 한번에 여러개의 자식 요소를 설정할 수 있다.
const newP = document.createElement( 'p' ) // 요소 p 생성
const newDiv = document.createElement( 'div' ) // 요소 div 생성

document.body.append(newP, newDiv, "Hello"); // 자식 연결

// 결과
/*
<body>
  <p></p>
  <div></div>
  hello
</body>
*/
  • return 값을 반환하지 않는다.

 

(2) appendChild()

 

 [부모요소].appendChild([자식요소]) 

document.body.appendChild(newP); // 자식 연결

 

특징

  • 컨텐츠를 선택된 요소 내부의 끝부분에 삽입 (부모요소의 자식 중 가장 끝 자식 요소로 추가)
  • 자식요소로 요소 외에 문자열을 사용할 수 없다.
  • 오직 한 개의 요소만 추가할 수 있다.
  • return 시 추가되는 인수를 반환한다.
console.log(document.body.appendChild(newP)); // p(Node object)

 

 

(3) prepend()

 

 [부모요소].prepend([자식요소]) 

document.body.prepend(newP); // 자식 연결

 

특징

  • 컨텐츠를 선택된 요소 내부의 끝부분에 삽입 (부모요소의 자식 중 가장 끝 자식 요소로 추가)
  • 자식요소로 요소 외에 문자열을 사용할 수도 있다.
const newP = document.createElement( 'p' ) // 요소 p 생성
newP.prepend('문자열 추가'); // 자식 연결

// 결과 : <p>문자열 추가</p>
  • 한번에 여러개의 자식 요소를 설정할 수 있다.
const newP = document.createElement( 'p' ) // 요소 p 생성
const newDiv = document.createElement( 'div' ) // 요소 div 생성

document.body.prepend(newP, newDiv, "Hello"); // 자식 연결

// 결과
/*
<body>
  <p></p>
  <div></div>
  hello
</body>
*/
  • return 값을 반환하지 않는다.

 


자식 추가 함수 차이 정리

 

  append appendChild prepend
추가 위치
문자열 추가 가능 O X O
다중 자식 추가 가능 O X O
반환값 여부 X O X

 


2-2. 형제 관계 만들기 (형제 연결하기)

여기선 형제와 연결하는 방법에 대해 설명한다.

 

(1) before()

 

부모 요소 앞에 자식 요소 삽입

 [부모요소].before([자식요소]) 

document.body.before(newP);

 

(2) after()

 

부모 요소 뒤에 자식 요소 삽입

 [부모요소].after([자식요소]) 

document.body.after(newP);

 


3. 아이디 혹은 클래스이름 지정

나중에 확인하기 쉽게, 혹은 CSS 설정을 쉽게 아이디나 클래스 이름을 지정해줄 수 있다.

 

div.id = 'testId'; // id 지정
div.className = 'testClass'; // class 이름 지정
반응형

'프로그래밍 언어 > JavaScript' 카테고리의 다른 글

[JS] HTML에 JS, CSS 불러오기  (0) 2023.12.30
#01 Node.js  (0) 2022.07.19