Одно решение может использовать document.querySelectorAll("#btn_buy, #btn_buy_two")
Эта функция вернет массив, содержащий два элемента, которые вы ищете.
Поскольку вы хотите, чтобы они делали то же самое при нажатии, вам нужно .forEach(function(button){})
, который будет выполнять их итерацию.
Эта функция будет возвращать одну за другой кнопки и сохранять их впеременная " button ".
Теперь вы можете воздействовать на них, как на один элемент:
button.addEventListener('click', function(e) {
handler.open({
zipCode: 'true',
// image: '<%= @pack.art_link %>',
name: '<%= @pack.title %>',
description: 'Total: $<%= @pack.price %> USD',
amount: document.getElementById("amount").value
});
e.preventDefault();
});
Я написал фрагмент кода:
document.querySelectorAll('#btn1, #btn2').forEach(function(button) {
button.addEventListener('click', function(e) {
// ----- YOUR CODE -----
console.log("some action")
})
});
<button id="btn1">Button 1</button>
<button id="btn2">Button 2</button>
Две кнопки выполняют одно и то же действие без необходимости писать их дважды.
(Я изменил код, чтобы сделать его более доступным для другихпользователи, имеющие ту же проблему)