Я хочу применить другой цвет фона к моим выбранным элементам в зависимости от выбранной опции.
У меня есть этот фрагмент кода, который я хочу применить к своему делу:
$('select').on('change', function(ev) {
$(this).attr('class', '').addClass($(this).children(':selected').val());
});
Проблема в том, что в моем случае я не хочу полное значение выбранной опции.Но только последний символ значения, возвращенного .val ()
Я пытался
$(this).attr('class', '').addClass($(this).children(':selected').val().id.slice(-1));
Но это не работает
Я взял этот код из этого Пример Это работает так, как я хочу, но в моем случае значение параметра отличается для каждого параметра, и у меня есть сотни вариантов выбора и параметров.В этом формате:
Name - Date - 1 Letter Variable
Итак, у меня есть такой CSS:
select, option { background: #fff; }
select.P, option[value$='P'] { background: yellow; }
select.O, option[value$='O'] { background: lightblue; }
select.A, option[value$='A'] { background: lightgreen; }
select.R, option[value$='R'] { background: salmon; }
И пример выбора:
<select onchange='myFunction()' id='" . $i . "' name='" . $i . "' style='width: 80px;'>
<option value='' style='background:white' style='width: 80px;'></option>
<option value='" . $vacationIdP . "' style='background:yellow' style='width: 80px;'>P</option>
<option value='" . $vacationIdO . "' style='background:lightblue' style='width: 80px;'>O</option>
<option value='" . $vacationIdA . "' style='background:lightgreen' style='width: 80px;'>A</option>
<option value='" . $vacationIdR . "' style='background:salmon' style='width: 80px;'>R</option>
</select>