Первое, что может вызвать проблему, - это строка:
document.querySelector('button.up')[4].click();
Причины, по которым возникает проблема, состоят в том, что document.querySelector()
возвращает либо первый элемент, соответствующий предоставленному селектору, либо null
,если нет элементов, соответствующих селектору.Следовательно, индексная нотация [4]
обречена на провал в дизайне.
Не видя больше вашего HTML, трудно предложить полностью работающее предложение, но я бы посоветовал, что использование альтернативного селектора должно работать (так долгопоскольку ваши id
атрибуты уникальны, так как они должны соответствовать спецификации):
document.querySelector('#sl + button.up').click();
const clickHandler = (event) => {
console.log(`${event.target.outerHTML}`);
}
document.querySelectorAll('button').forEach(
(button) => button.addEventListener('click', clickHandler)
);
document.querySelector('#sl + button.up').click();
<div class="input-text num">
<input type="text" placeholder="" id="sl" min="0" max="" step="0.00001">
<button tabindex="-1" class="up">
<span class="v">up</span></button>
<button tabindex="-1" class="down">
<span class="v">down</span></button>
</div>
Ссылки: