Нет, не будет.
Вы создаете только один элемент списка, а затем пытаетесь вставить его несколько раз.Вы должны создать новый элемент в каждой итерации.
shoppingList.children
постоянно обновляется в цикле for, поэтому условие внутри объявления for(...)
не будет работать, как выожидаю.
Следующий код должен работать.Разница в том, что я беру ссылки только на существующие элементы списка и пытаюсь добавить новые элементы списка относительно них.Наконец, я просто добавляю новый элемент списка ко всему дереву, поэтому я выполняю даже условие, когда ни один из детей не присутствует.
const shoppingList = document.getElementById('shoppinglist')
let i = 0
const createLi = () => {
const li = document.createElement('li')
li.innerText = `New ${++i}`
return li
}
Array.from(shoppingList.children)
.forEach(c => shoppingList.insertBefore(createLi(), c))
shoppingList.appendChild(createLi())
<ul id="shoppinglist">
<li>Original 1</li>
<li>Original 2</li>
</ul>