Можно еще подробнее про это?
<button class="like js-counter" type="button">1</button>
<button class="like js-counter" type="button"><i class="fa fa-heart"></i>1</button>
elem.textContent = elem.jsCounter.val
i
, который font-awesome использует для отображения иконок.span
или output
(Тэг в который выводится информация скриптом) и считывать значения из него при инициализации и записывать в него при кликах.like
чтоб не мешался):<button class="js-counter" type="button">
<i class="fa fa-heart"></i>
<span class="js-counter__value">1</span>
</button>
elem.jsCounter = new Counter(elem.textContent)
var elemCounter = elem.querySelector('.js-counter__value') // находим спан, которым обернули текст
elemCounter.jsCounter = new Counter(elemCounter.textContent) // сохраняем в придуманное нами свойство jsCounter объект из функции Counter
var elem = evt.target
var elem = evt.currentTarget.querySelector('.js-counter__value') // target поменяли на currentTarget чтобы смотреть всегда на кнопку, а не на сердечко или спан-обёртку текста и добавили поиск этого спана.
elem.textContent = elem.jsCounter.val
1)
1 2
4 5
2)
3
6
А там уже и на флексах и на гридах можно.
Зависит от того, какой должен быть адаптив.
Или masonry раскладку.