document.getElementsByTagName("nav")
возвращает массив всех соответствующих элементов, затем вы должны выбрать первый.
Вы создаете экземпляр только одного элемента, потому что ваша строка ele = document.createElement("a");
находится вне цикла.
Вам вообще не нужно parentNode
.
Вот раздвоенная скрипка
Ключевое слово let
позволяет создать переменную, которая ограничена областью переноса. В противном случае переменные ограничиваются родительской функцией, но это не имеет никакого отношения к проблемам, с которыми вы столкнулись.
Замыкания - это то, что вы можете узнать позже, это полезно при выполнении асинхронных операций в циклах и многих других вещах, но не требует использования в вашем случае.