@m4son

Как сделать кнопку для смены option в select?

Есть тэг select, в нем несколько option. Как сделать 2 кнопки, чтобы они переключали option на следующий и предыдущий ?
  • Вопрос задан
  • 134 просмотра
Решения вопроса 2
john36allTa
@john36allTa
That`s calling Walker
<select id="part">
	<option>
		First
  </option>
	<option>
		Second
  </option>
	<option>
		Third
  </option>
</select>
<button data-next=1 class='control'>Next</button>
<button class='control'>Previous</button>

const select=document.getElementById('part')
for (let btn of document.querySelectorAll('.control'))
	btn.addEventListener( 'click', e => {
		let i = select.selectedIndex + ( e.target.dataset.next ? 1 : -1),
			l = select.options.length - 1
		select.selectedIndex = i > l ? 0 : i < 0 ? l : i
  })

Или так, чтобы по кругу не ходил
const select=document.querySelector('#part')
for (let btn of document.querySelectorAll('.control'))
	btn.addEventListener( 'click', e => {
		let i = select.selectedIndex + ( e.target.dataset.next ? 1 : -1)
		if (i in select.options) select.selectedIndex = i
  })
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы