aquí está la parte html ..
var removeButton = document.getElementById("remove"); removeButton.addEventListener("click", removeItem); function removeItem() { var list = document.getElementById("list"); var listItems = list.getElementsByTagName("li"); var last = listItems[listItems.length - 1]; list.removeChild(last); if (last == listItems.length - 1) { document.getElementById("remove").disabled = true; } } <ul id="list"> <li class="abc">cold cereal</li> <li class="abc">Ice cream</li> <li class="abc">Honey</li> <li class="abc">Olive Oil</li> </ul> <button id="btn" onclick="myfun()">add item</button> <button id="remove">remove item</button>hizo clic en el botón Eliminar y está eliminando los elementos de la lista después de que todos los elementos se eliminan de la lista, muestra el error.
cuando ejecuto este código, todo funciona bien, pero cuando todos los elementos se eliminan de la lista después de eliminar todos los elementos de la lista cuando presiono el botón una vez más, muestra el error
Por aquí
const removeButton = document.getElementById('remove') , list = document.getElementById('list') ; removeButton.addEventListener("click", removeItem); function removeItem() { let listItems = list.querySelectorAll('li') , lastRef = listItems.length - 1 ; list.removeChild(listItems[lastRef] ); if (lastRef === 0) { removeButton.disabled = true; } } <ul id="list"> <li class="abc">cold cereal</li> <li class="abc">Ice cream</li> <li class="abc">Honey</li> <li class="abc">Olive Oil</li> </ul> <button id="btn" onclick="myfun()">add item</button> <button id="remove">remove last item</button>Cuando se eliminan todos los nodos, no puede realizar la operación de eliminación, tendrá que aplicar una condición para superar esto
Reemplace su código de función removeItem con el siguiente:
function removeItem() { var list = document.getElementById("list"); var listItems = list.getElementsByTagName("li"); if (listItems.length > 0) { var last = listItems[listItems.length - 1]; list.removeChild(last); } else{ alert("can't delete") } }no sé por qué usaste esto
if( last == listItem.length - 1) { document.getElementById('remove').disable = true; }prueba esto
if(listItem.length - 1 === 0){ document.getElementById("remove").disabled = true; } }