Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 버튼 클릭으로 이름을 추가하고 제거하는 방법

JavaScript에서 버튼 클릭 시 새로운 이름을 목록에 추가하려면 요소를 생성한 뒤 DOM에 삽입하는 방식을 사용하고, 이미 추가된 요소를 제거하려면 remove() 메서드를 사용하면 됩니다. 아래 예제는 입력창에 이름을 입력하고 버튼을 클릭하면 목록에 이름이 추가되며, 각 항목의 삭제 버튼을 누르면 해당 이름이 목록에서 제거되는 기능을 구현한 코드입니다.

전체 코드 예제

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initialscale=1.0">
<title>Document</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fontawesome/4.7.0/css/font-awesome.min.css">
<style>
</style>
</head>
<body>
<div class="">
<ul id="listOfName"></ul>
</div>
<div class="">
<h1 class="">Add A New Name</h1>
<div class="">
<input type="text" id="name" placeholder="Add Name......">
<button class="btn" id="addNameButton">AddName</button>
</div>
</div>
</div>
<script>
    var givenName = document.querySelector('#name')
    var btnClass = document.querySelector('#addNameButton')
    var listOfName = document.querySelector('#listOfName')
    btnClass.addEventListener('click', () => {
      var actualName = givenName.value
      if (actualName.length != 0) {
          var createAnHTMLList = `<li class=""><div>${actualName}</div><button onclick="removeNameFromTheList(this)">Remove Name</button>`
          listOfName.innerHTML += createAnHTMLList
          givenName.value = ''
          givenName.classList.remove('red')
      } else{
          givenName.classList.add('red')
      }
    })
    function removeNameFromTheList(e) {
       e.parentElement.remove()
    }
</script>
</body>
</html>

프로그램 실행 방법

위 프로그램을 실행하려면 파일 이름을 “anyName.html”(또는 index.html)로 저장한 후 파일을 마우스 오른쪽 버튼으로 클릭합니다. 그다음 VS Code 편집기에서 “Open with Live Server” 옵션을 선택하면 브라우저에서 바로 결과를 확인할 수 있습니다.

실행 결과

위 코드를 실행하면 다음과 같은 초기 화면이 나타납니다.

JavaScript 버튼 클릭으로 이름을 추가하고 제거하는 방법

여기서는 JohnDavid, 두 개의 이름을 차례로 추가해 보겠습니다. 먼저 입력창에 “John”을 입력한 뒤 “AddName” 버튼을 클릭합니다.

JavaScript 버튼 클릭으로 이름을 추가하고 제거하는 방법

“AddName” 버튼을 클릭하면 다음과 같이 목록에 이름이 추가된 것을 확인할 수 있습니다.

JavaScript 버튼 클릭으로 이름을 추가하고 제거하는 방법

같은 방법으로 “David”도 추가합니다. 두 이름을 모두 추가하면 다음과 같은 결과 화면이 표시됩니다.

JavaScript 버튼 클릭으로 이름을 추가하고 제거하는 방법

이제 ‘John’ 항목의 “Remove Name” 버튼을 클릭해 해당 이름을 제거해 보겠습니다. 그러면 다음과 같이 목록에서 John이 사라진 것을 확인할 수 있습니다.

JavaScript 버튼 클릭으로 이름을 추가하고 제거하는 방법

코드 동작 원리 정리

  • document.querySelector()를 사용해 입력창(#name), 추가 버튼(#addNameButton), 이름 목록(#listOfName) 요소를 각각 가져옵니다.
  • 버튼에 click 이벤트 리스너를 등록하고, 클릭 시점에 입력창의 값을 읽어옵니다.
  • 입력값이 비어 있지 않으면 템플릿 리터럴로 <li> 항목을 생성해 목록에 추가하고, 입력창을 비운 뒤 ‘red’ 클래스를 제거합니다.
  • 입력값이 비어 있으면 입력창에 ‘red’ 클래스를 추가해 사용자에게 값 입력이 필요함을 시각적으로 알립니다.
  • 각 항목의 삭제 버튼은 removeNameFromTheList(this) 함수를 호출하며, 이 함수 내부의 e.parentElement.remove()가 해당 <li> 항목을 목록에서 완전히 삭제합니다.