<ul id="list1">
  <li>Item n.1</li>
  <li>Item n.2</li>
</ul>
<button id="btn1">Add new item</button>
let counter = 2

const addNewItem = () => {
  // Bounce the counter and generate
  // the new item's text content
  counter += 1
  const text = `Item n.${counter}`
  
  // Create the necessary DOM elements
  const listEl = document.querySelector('#list1')
  const itemEl = document.createElement('li')
  const textEl = document.createTextNode(text)
  
  // Update the DOM structure by
  // nesting items into each other
  itemEl.appendChild(textEl)
  listEl.appendChild(itemEl)
}

// Just setup the event listern
// you may be tired of this by now...
document
  .querySelector('#btn1')
  .addEventListener('click', addNewItem)
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.