I use a different approach with a js prefix class. Attributes should be used to pass data and not for targeting element even so it's better than targeting an ID or a CSS class.
e.g:
<button class="js-percentage-button btn-red">%</button>
const percentageButton = document.querySelector('.js-percentage-button')