순서 없는 목록(Unordered List, UL)에 새 항목을 줄바꿈 형태로 추가하려면 document.querySelector()와 append() 메서드를 함께 사용하면 됩니다. 사용자가 입력한 값을 텍스트 박스에서 읽어와 <li> 요소를 동적으로 생성한 뒤, 목록에 추가하는 방식입니다.
예제 코드
아래는 이름을 입력받아 UL 목록에 하나씩 추가하는 완전한 예제입니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=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>
<style>
h1{
font-size: 2.50rem;
}
h2, label{
font-size: 1.50rem;
}
</style>
</head>
<body>
<h1>이름 추가 데모</h1>
<div>
<label>이름 입력:</label>
<input class="txtName" type="text" />
<button class="btnName">저장</button>
</div>
<h2>이름 목록</h2>
<ul class="listOfName"></ul>
<script>
const buttonName = document.querySelector('.btnName')
const addName = e => {
let nameTxt = document.querySelector('.txtName'),
name = nameTxt.value.trim()
if (name) {
let tagLi = document.createElement('li')
tagLi.textContent = name
document.querySelector('.listOfName').append(tagLi)
nameTxt.value = ''
}
}
buttonName.addEventListener('click', addName)
</script>
</body>
</html>코드 실행 방법
위 프로그램을 실행하려면 파일 이름을 "anyName.html(index.html)"로 저장한 후, 해당 파일을 마우스 오른쪽 버튼으로 클릭합니다. 그다음 VS Code 편집기에서 "Open with Live Server" 옵션을 선택하면 브라우저에서 결과를 확인할 수 있습니다.
실행 결과
위 코드를 실행하면 다음과 같은 화면이 나타납니다.

텍스트 박스에 값을 입력해 보겠습니다. 예를 들어 이름으로 'John'을 입력합니다.

그다음 '저장(Save)' 버튼을 클릭합니다. 버튼을 클릭하면 입력한 이름이 목록에 새 줄로 추가되어 아래와 같은 결과가 출력됩니다.

이번에는 'Bob'이라는 이름을 다시 입력해 보겠습니다. 갱신된 출력 결과는 다음과 같습니다.

'저장(Save)' 버튼을 클릭하면 최종적으로 아래와 같은 결과를 확인할 수 있습니다.

핵심 포인트 정리
이 예제의 핵심 로직은 다음과 같습니다.
1. 요소 선택: document.querySelector()를 사용해 버튼, 입력 필드, 목록 등 필요한 DOM 요소를 선택합니다.
2. 새 목록 항목 생성: document.createElement('li')로 새로운 <li> 요소를 만들고, textContent에 입력값을 할당합니다.
3. 목록에 추가: append(tagLi)를 호출하면 새 항목이 기존 목록 맨 아래에 자동으로 줄바꿈되어 추가됩니다.
4. 입력 필드 초기화: 항목 추가 후 nameTxt.value = ''로 입력창을 비워 다음 입력을 준비합니다.
또한 trim() 메서드로 공백만 입력된 경우를 걸러내고, if (name) 조건문으로 빈 값이 목록에 추가되지 않도록 처리했다는 점도 주목할 만합니다.