고슴맨쉬
망치와 공(空)
고슴맨쉬
  • 분류 전체보기 (155)
    • 💡 UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • 🟨 JavaScript (66)
      • 개념 (42)
      • 정리 (2)
      • 문제풀기 (프로그래머스, 코딩애플) (15)
      • 응용하여 자동화or문제해결하기 (2)
      • 기타 (5)
    • ⚛️ React (49)
      • 개념 (27)
      • 개념(Redux) (3)
      • 정리 (4)
      • 문제풀기 (코딩애플: React) (15)
    • 📘 TypeScript (10)
      • 개념 (8)
      • 문제풀기 (코딩애플) (2)
    • 🌐 HTML,CSS (18)
      • 실무에서 자주 발생한 오류들 (10)
      • 뒤늦게 알아서 뼈아픈 유용한 CSS (6)
      • 기타 자주 쓰는 CSS (2)
    • 💻 CS (8)
      • CS (5)
      • 정규표현식 (2)
      • Git,Github (1)

태그

  • Ajax
  • 프로그래머스
  • 코딩애플
  • Props
  • 삼항연산자
  • json
  • JavaScript
  • object
  • UXUI
  • CSS
  • useEffect
  • array
  • CS
  • state
  • 오류
  • redux
  • react
  • axios
  • class
  • TypeScript
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
고슴맨쉬

망치와 공(空)

🟨 JavaScript/개념

[코딩애플,mdn] js로 html 생성하는 법 (appendChild, createElement, insertAdjacentHTML 등)

2023. 1. 18. 21:49

1. document.createElement() / appendChild() / clondeNode() / importNode()

<div id="test">
  <!-- 안녕 -->
</div>

<script>
  var a = document.createElement('p');
  a.innerHTML = '안녕';
  document.querySelector('#test').appendChild(a);
</script>
  • document.createElement() : html 자료를 생성한다.
  • element.appendChild() : 한 노드를 특정 부모 노드의 자식 노드 리스트 중 마지막 자식으로 붙인다. (한 노드는 문서상의 두 지점에 동시에 존재할 수 없으므로, 노드가 이미 부모가 있다면 삭제되고 새로운 위치로 이동한다.)
    * append()와의 차이점 : append는 jquery에서 지원하는 메소드로, 원시 자바스크립트인 appendChild()와 다르다. 또한 append는 .append(`<p>내용</p>`) 처럼 요소를 바로 때려박을 수 있는 반면, appendChild()는 createElement로 반드시 요소를 따로 생성해야만 한다.
  • cloneNode() : 위 appendChild와 다르게 새로운 부모의 밑으로 붙기 전에 노드를 복제한다. (이 메소드로 만들어진 노드들은 자동적으로 문서에 적용되지 않는다.)
  • importNode() : appendChild()는 다른 문서로 노드를 이동시키지 못하므로, 다른 문서로 이동시키고 싶다면 이 메소드를 사용한다.

2. 변수에 html 저장 / insertAdjacentHTML()

<div id="test">
  <!-- 안녕 -->
</div>

<script>
  var a = '<p>안녕</p>';
  document.querySelector('#test').insertAdjacentHTML('beforeend', a);
</script>
  • 변수 안에 html을 저장할 수 있다.

element.insertAdjacentHTML(position, text)

html 특정 텍스트를 파싱하고, 특정 위치 DOM tree 안에 원하는 node들을 추가한다. 이미 사용중인 element는 다시 파싱하지 않는다. (= element 안에 존재하는 element를 건드리지 않는다) 그래서 innerHTML과 다르다. (innerHTML 보다 작업이 덜 드므로 더 빠름.)

<!-- beforebegin -->
<p>
<!-- afterbegin -->
foo
<!-- beforeend -->
</p>
<!-- afterend -->

position

  • 'beforebegin' : element 앞에 붙는다
  • 'afterbegin' : element 안에 가장 첫번째 child
  • 'beforeend' : element 안에 가장 마지막 child
  • 'afterend' : element 뒤에 붙는다

출처 : 코딩애플 https://codingapple.com/ / MDN https://developer.mozilla.org/ko/

저작자표시 비영리 동일조건 (새창열림)

'🟨 JavaScript > 개념' 카테고리의 다른 글

[코딩애플] ajax로 서버와 데이터 주고받기 (1)  (0) 2023.03.27
[mdn, 코딩애플 등] for, forEach, for in  (1) 2023.01.31
[코딩애플] 자료형 : Array, Object (특징과 차이점)  (0) 2023.01.18
[코딩애플,mdn 등] 이벤트버블링과 이벤트캡쳐링 및 관련 유용한 함수들  (0) 2023.01.16
[코딩애플] 요소의 높이와 위치값 구하기 (clientHeight, offsetHeight, scrollHeight, getBoundingClientRect())  (0) 2023.01.11
    '🟨 JavaScript/개념' 카테고리의 다른 글
    • [코딩애플] ajax로 서버와 데이터 주고받기 (1)
    • [mdn, 코딩애플 등] for, forEach, for in
    • [코딩애플] 자료형 : Array, Object (특징과 차이점)
    • [코딩애플,mdn 등] 이벤트버블링과 이벤트캡쳐링 및 관련 유용한 함수들
    고슴맨쉬
    고슴맨쉬
    부수되 집착하지 않고, 이해하되 머무르지 않기

    티스토리툴바