Как перебрать неопределённое количество элементов через цикл?
Можно ли как-то это всё прогнать через цикл, чтобы избавиться от дублирования кода?
от дублирования кода избавляют функции или методы в классах.
как вариант можно написать код нужный, но кнопкам позволить поменять какие-то значения по необходимости (если что-то отличается) и прогонять код 
тем более, тебе зачем 4 кнопки на сайте с одинаковым кодом? если можно - умести в одну. будет только удобнее.