Когда вы добавляете новый элемент, нет причин запрашивать DOM и повторять все элементы снова.Просто добавьте обработчик кликов в любой код, который вы использовали для создания нового элемента списка.Если у вас есть список li
элементов, которые вы храните по другим причинам, вы можете добавить его и в этот список.
var li = document.getElementsByTagName("li");
var ul = document.getElementById('theList')
function addDoneClass() {
this.classList.toggle("done")
}
function addLI(){
let l = document.createElement('li') // make a new li element
l.textContent = "New LI"
ul.appendChild(l)
l.addEventListener("click", addDoneClass) // add your handler
}
for(var i = 0; i< li.length; i++) { // deal with initial li elements
li[i].addEventListener("click", addDoneClass);
}
.done{
color:red
}
<ul id="theList">
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
<button onclick="addLI()"> add </button>