Let's Study Coding

Welcome to Visit!!
Let's get it

웹 개발자로의 새로운 여정을 시작해 보겠습니다.

총 방문자
총 포스팅
오늘 방문자
000일 째 블로그 운영중

여러분들의 방문을
진심으로 환영합니다

웹 개발자로서, 다양한 개발 지식을 다루는
블로그를 만들어보겠습니다. 😃

최근 글

막 올라온 최신 포스팅을 구경해보세요 !

참고하는 웹사이트 목록 💻

필자가 자주 참고하는 웹사이트를 둘러보세요.

Img
2023. 2. 22. 22:45
[WebSite] 🖥️ 웹 개발을 할 때 자주 참고하는 사이트 모음.
목차 제가 웹개발을 할 때 자주 참고하는 사이트를 정리한 포스팅입니다. @Web's CSS 코드펜의 자료들 중 좋은 자료들을 모아 놓은 티스토리 블로그 사이트. 매우 유용한 자료가 많아서 애용하는 블로그다. @web's CSS 코드펜 레퍼런스 사이트입니다. wsss.tistor
더보기
Img
2023. 2. 13. 15:16
[WebSite] 🎨 유용한 무료 이미지 사이트 모음
목차 제가 주로 사용하는 또는 인터넷에서 찾은 유용한 무료 이미지 사이트를 모아서 정리한 포스팅입니다. Unsplash Unsplash는 200만개 이상의 완전 무료 고해상도 이미지를 제공하는 무료 이미지 사이트이다. 전 세계의 사진가들이 라이브러리에 사진을 제공하기
더보기
Img
2023. 2. 13. 15:01
[WebSite] 🖥️ 저작권 무료 목업 사이트 6곳 추천
포토샵, 일러스트를 이용한 디자인 작업을 할 때 로고나 웹, 패키지 등 디자이너들이 자신의 작업물을 더 업그레이드 하기 위하여 목업을 활용하고 있다. 오늘은 제가 주로 사용했던 무료 목업 사이트를 작성해보려고 한다. 1. Anthony Boyd Graphics Free Mockups
더보기
Img
2023. 2. 11. 20:33
[WebSite] 🌈 Gradient 사이트 모음.
목차 프론트엔드 웹개발을 하다 보면 Gradient를 이용하여 작업을 해야할 때가 많다. 문제는 Gradient 디자인을 할 때 단색으로 많은 톤을 잡지만 두 가지 이상을 사용할 때 조합이 어색하다면 전체적인 느낌이 살지 않을 수 있다. 하지만 조합이 잘된 그라데이션(Grada
더보기
Img
2023. 2. 11. 19:26
[WebSite] 🖥️ 유용한 SVG 사이트 모음
프론트엔드 작업을 하다보면 SVG를 사용하여 사이트를 만들어야 할 때가 생긴다. 그래서 어떤 유용한 SVG 사이트가 있는지를 알아볼 겸 자주 사용하는 SVG 사이트를 정리해서 작성해보려고 한다. 필자는 주로 7개의 SVG 사이트를 이용한다. 1. 부트스트랩(Bootstra
더보기

CSS 스타일링 🎨

웹 개발을 할 때 사용하는 CSS 사용방법을 확인해보세요.

Let's Write Message

Guest Book

블로그를 방문해주셔서 감사드립니다.
자유롭게 댓글 달아주세요 ~

Let's Choose Tag Box

Tag Page

원하시는 태그를 클릭해보세요.

Light Dev
Light Dev에서 공부한 내용을 정리합니다.

-

[JavaScript] 🌐 insertAdjacentHTML와 innerHTML 차이점 정리 본문

[JavaScript] 🌐 insertAdjacentHTML와 innerHTML 차이점 정리

Light9639

목차

    insertAdjacentHTML와 innerHTML 차이점

    insertAdjacentHTMLinnerHTML은 둘 다 JS를 사용해서 HTML 코드DOM에 넣어 조작하는 메서드다. 그럼 이 두가지 함수를 어떻게 사용하는지에 대해서 포스팅해보겠다.


    innerHTML 사용법

    innerHTML 속성은 JavaScript를 통해서 htmlcontent를 가져와서 그 값을 화면상에 보여주거나 직접 변경하여 보여주는 것을 뜻한다. <span>로 둘러쌓인 텍스트를 <button>클릭 시 <p>태그로 바꾸는 JS를 작성해보자.

    HTML
    <button>click</button>
    <span id="el">안녕하세요, 지금은 'span' 태그입니다.</span>

     

    라이브 서버로 확인해보면 클릭 버튼 옆에 텍스트가 나란히 나오는 것을 확인할 수 있다.

    JavaScript
    const btn = document.querySelector("button");
    const el = document.querySelector("#el");
    
    btn.addEventListener('click', e => {
      el.innerHTML = "<p>지금은 'p'태그로 변경되었습니다.</p>"
    })

     

    클릭하는 순간 <span>태그에서 <p>태그로 덮어씌워진다. 이것은 innerHTML의 특징 중 하나로, 기존 노드는 삭제되면서 새로 값이 되어 나타난다.


    insertAdjacentHTML 사용법

    insertAdjacentHTMLinnerHTML과 비슷하지만 innerHTML을 사용하게 되면 기존에 있던 것은 덮어쓰기가 되어버려서 기존의 값이 보이지 않게 된다. 하지만 insertAdjacentHTML은 기존의 값을 건드리지 않고, 새롭게 내가 입력하고 싶은 값을 어떤 위치에 놓을지를 설정할 수 있다는 차이가 있다. 

     

    position에는 4가지의 옵션이 있는데, 어떤 값을 넣느냐에 따라 html 요소 위치를 설정 할 수 있다.

     

    그럼, C라는 텍스트가 있는 span 태그를 넣어서 기준점을 정해보자.

    HTML
    <span id="el">C</span>
    JavaScript
    const el = document.querySelector("#el")
    
    el.insertAdjacentHTML('beforebegin', '<span>A-</span>'); 
    // 타켓 요소 전(형제레벨)에 생성- 시작 태그의 앞(형제 레벨로) 
    
    el.insertAdjacentHTML('afterbegin', '<span>B-</span>'); 
    // 타켓 요소 다음(자식요소)에 생성 - 시작 태그의 뒤(자식 요소로) 
    
    el.insertAdjacentHTML('beforeend','<span>-D</span>'); 
    // 타켓 요소 '끝나는 태그' 바로 직전(자식요소로)에 요소를 생성 - '종료 태그' 앞(자식 요소로) 
    
    el.insertAdjacentHTML('afterend','<span>-E</span>'); 
    // 타켓 요소의 '끝나는 태그' 바로 다음(형제레벨)에 요소를 생성 - '종료 태그' 뒤(형제 레벨로)

    위의 코드와 같이 작성하면 브라우저 화면에 A - B - C - D - E 순으로 결과가 나오는 것을 확인 할 수 있다.

     

    또한, 개발자 도구를 열어서 확인해보면 C 기준으로 정확한 위치를 확인할 수 있다.

     


    insertAdjacentHTML와 innerHTML 차이점 정리

    1. innerHTML은 기존 요소를 파싱하기 때문에 비싼 DOM 작업을 필요로 한다.
    2. 따라서 기존 요소를 파싱하지 않는 insertAdjacentHTML을 사용하면 작업을 빠르게 완료할 수 있다.
    3. 파싱 작업을 아예 배제하고, createElementinsertAdjacentElement를 사용하면 더 빠르게 완료할 수 있다.
    4. innerText 대신 textContent를 쓰면 더 빠르게 완료할 수 있다.

    잘못된 내용이 있으면 언제든 피드백 부탁드립니다.

    이 글이 좋으셨다면 구독 & 좋아요

    여러분의 구독과 좋아요는
    저자에게 큰 힘이 됩니다.


    Light Dev
    Light dev
    웹 개발자로의 새로운 여정을 시작해 보겠습니다. 조언해주실 부분이 있으시면 언제든 이메일 부탁드립니다.

    사이트를 방문해 주셔서 감사합니다

    만일 도움이 되셨으면 공감과 구독 버튼 클릭 부탁드립니다.
    추가적인 질문사항이나 이해가 안되는 점이 있으면 댓글로 적어주세요.

      Light9639
      티스토리에 팔로잉