【发布时间】:2019-02-21 23:40:01
【问题描述】:
我想根据所选选项为我的选择元素应用不同的背景颜色。
我想将这段代码应用到我的案例中:
$('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));
但它不起作用
我从Example 中获取了此代码 这也可以按我的意愿工作,但在我的情况下,每个选项的选项值都不同,我有数百个选择和选项。 采用这种格式:
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的例子:
<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>
【问题讨论】:
-
我认为问题在于函数
children返回的元素数组。 -
这不行
val().id
标签: javascript select substring option