@zlFast

Как в select в выбранном option менять текст?

Есть select
<select>
    <option>2011</option>
    <option>2012</option>
    <option>2013</option>
    <option>2014</option>
    <option>2015</option>
    <option>2016</option>
</select>

Нужно, чтобы в выбранном option текст немного менялся, например, выбрали 2012, но в select на странице должно быть написано не 2012, а "от 2012". Но в отрывающемся списке должно быть только 2012 написано.
  • Вопрос задан
  • 459 просмотров
Решения вопроса 1
Deonisius
@Deonisius
Родился в 11110110111 году, 11000 января.
Пример в песочнице
var sel = document.querySelector('select');
sel.options[0].textContent = 'от ' + sel.options[0].textContent;
sel.addEventListener('change', function(){
	var curIndex = this.selectedIndex;
    [].forEach.call(this.options,function(opt, i){
    	if(i === curIndex) {
        	opt.textContent = 'от ' + opt.textContent;
        } else {
        	opt.textContent = opt.textContent.replace(/[^\d]+/,'');
        }
    });
});
Или чуть покороче, изменив цикл
[].forEach.call(this.options,function(opt, i){
    opt.textContent =  i === curIndex ? 'от ' + opt.textContent : opt.textContent.replace(/[^\d]+/,'');
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Market-place Ростов-на-Дону
от 100 000 до 200 000 ₽