Хм, действительно, ну теперь я тоже буду знать, что это плохая практика, хе, а про getBoundingClientRect() не понял, всё равно же надо каким-то образом элемент получить.
Я бы id накинул или дата атрибут порядковый, затем подключил обсервер и им бы считывал этот ид создавая массив или просто на основе числа заполнял бы эту шкалу