본문 바로가기
JavaScript

노트 추가 기능

by 헬로제이콥 2024. 11. 28.

노트 추가 기능

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
 
</head>
<body>
  <div id = "container">
    <h1> Web Programming</h1>
    <p> 공부할 주제를 기록해 보세요</p>
      <form action="">
        <input type="text" id="subject" autofocus>
        <button onclick="newRegister();return false;"> 추가</button>
      </form>  
      <hr>
        <ul id="itemlist"></ul>
  </div>    
    
    <script>
      function newRegister(){
        let newItem1 = document.createElement("li"); //요소노드 추가
        let subject = document.getElementById("subject");//폼 추가요소 필드
        
        let newText = document.createTextNode(subject.value);//텍스트 노드만들기
        newItem1.appendChild(newText);

        let ItemList = document.querySelector("#itemlist");
        ItemList.appendChild(newItem1);  
      
        subject.value="";   //폼 요소 초기화
      }
    </script>   

</body>
</html>

 

코드의 전체적인 흐름

위 코드는 웹 페이지에서 사용자가 입력한 내용을 리스트에 추가하는 기능을 구현합니다. 즉, 사용자가 입력한 내용을 새로운 리스트 항목으로 만들어 기존 리스트에 추가하는 것입니다.

코드별 상세 설명

  1. function newRegister():
    • 새로운 노트를 추가하는 기능을 담당하는 함수입니다.
  2. let newItem1 = document.createElement("li");:
    • 새로운 리스트 항목(<li>)을 생성하여 newItem1 변수에 저장합니다. 이는 리스트에 추가될 새로운 노트를 나타냅니다.
  3. let subject = document.getElementById("subject");:
    • id가 "subject"인 요소(보통은 입력 필드)를 찾아 subject 변수에 저장합니다. 이 요소는 사용자가 노트 내용을 입력하는 곳입니다.
  4. let newText = document.createTextNode(subject.value);:
    • subject 요소에 입력된 값(subject.value)을 텍스트 노드로 만들어 newText 변수에 저장합니다. 이는 실제로 리스트에 표시될 노트 내용입니다.
  5. newItem1.appendChild(newText);:
    • 앞서 생성한 리스트 항목(newItem1)에 텍스트 노드(newText)를 자식으로 추가합니다. 즉, 리스트 항목 안에 입력된 내용이 들어가게 됩니다.
  6. let ItemList = document.querySelector("#itemlist");:
    • id가 "itemlist"인 요소(보통은 <ul>이나 <ol>)를 찾아 ItemList 변수에 저장합니다. 이 요소는 전체 리스트를 나타냅니다.
  7. ItemList.appendChild(newItem1);:
    • 전체 리스트(ItemList)에 새로운 리스트 항목(newItem1)을 자식으로 추가합니다. 즉, 새로 생성된 노트가 리스트의 마지막에 추가됩니다.
  8. subject.value="";:
    • subject 요소의 값을 빈 문자열로 초기화하여 다음 입력을 위해 입력 필드를 비웁니다.

노트 추가 방식 요약

  1. 새로운 리스트 항목 생성
  2. 입력된 내용을 텍스트 노드로 변환
  3. 리스트 항목에 텍스트 노드 추가
  4. 전체 리스트에 새로운 리스트 항목 추가
  5. 입력 필드 초기화