具有多个选择框的多种选项颜色
Multiple option colors with Multiple Select Box
您好,我有多个选择框,这些选择框将动态添加。
我在选择框下有 4 个选项,每个选项都有颜色编码。它适用于一个选择框。如果我有多个选择框,则颜色编码不起作用。请帮忙!
这是小提琴https://jsfiddle.net/p49g8p9h/
目录
<tr>
<td class="tg-7khl">MAV_01</td>
<td class="tg-7khl">Maveric Poster</td>
<td class="tg-7khl">Maveric</td>
<td class="tg-7khl">PRE,VIN,MUK</td>
<td class="tg-7khl">14 Aug 2015</td>
<td class="tg-7khl">
<select id="stat" class="redText" style="padding: 3px; display:block;">
<option class="redText">Yet to start</option>
<option class="orangeText">In Progress</option>
<option class="blueText">Waiting</option>
<option class="greenText">To invoice</option>
</select>
</td>
<td class="tg-7khl red">from 12 Aug 2015</td>
</tr>
你的代码中有两个问题。
1) 您有重复的选择元素的 ID。ID 必须是唯一的。您可以改用相同的类名。并改为按类名定位元素。
2)您正在单击处理程序中使用获取元素的对象。您应该在处理程序中使用当前元素上下文this
。
完整片段:
var selectele = document.getElementsByClassName('stat');
for(var i=0;i<selectele.length;i++)
selectele[i].onchange = function () {
this.className = this.options[this.selectedIndex].className;
}
}
工作演示
检查这个工作更新的小提琴,你有重复的ID,所以这不起作用,你也可以用类来做
var select = document.getElementById('stat');
select.onchange = function () {
select.className = this.options[this.selectedIndex].className;
}
var select1 = document.getElementById('stat1');
select1.onchange = function () {
select1.className = this.options[this.selectedIndex].className;
}
var select2 = document.getElementById('stat2');
select2.onchange = function () {
select2.className = this.options[this.selectedIndex].className;
}
id
对于每个元素应该是唯一的。使用class
redText
而不是id
如下所示。
var select = document.getElementsByClassName('redText');
for (var i = 0; i < select.length; i++) {
select[i].onchange = function () {
this.className = this.options[this.selectedIndex].className;
}
}
演示
您对多个元素使用相同的 id,这是无法通过 id 获取所有元素的原因。
将所有 ID 更改为类,如下所示 -
<select class="stat redText" style="padding: 3px; display:block;">
使用this.className
,以便仅采用值已更改的当前选择框
var select = document.getElementsByClassName('stat');
for(var i = 0; i < select.length; i++) {
select[i].onchange = function () {
this.className = this.options[this.selectedIndex].className;
}
}
JSFiddle Demo
相关文章:
- 使用CSS在选项卡更改时平滑颜色转换
- 使用java脚本更改onClick事件中菜单选项卡的颜色
- HTML-从mysql生成的选择框中的一个选项更改文本区域的颜色
- 如何在tinymce编辑器中启用字体系列和颜色选项
- 选项选定的文本颜色
- 更改活动选项卡的颜色
- 选择文档背景颜色的选择列表选项时,如何更改该颜色
- 如何根据从选择菜单中提供给用户的选项更改网页的背景颜色
- 具有多个选择框的多种选项颜色
- 如何使用javascript更改选项卡颜色
- 导航选项卡保持一定的颜色
- 文本颜色在活动选项卡期间更改为白色
- 阻止选择框更改所选选项颜色
- 如何在 HTML 选择中对选项文本的某些部分使用不同的颜色
- html默认选择选项 - 不同的颜色 - 不适用于当前的jquery
- 谷歌地图多边形在设置选项后不更新颜色
- 悬停时更改选项背景颜色
- 如果选择了文本,并单击了下拉选项,则更改所选文本的颜色
- 如何使手风琴选项卡在活动时具有不同的颜色
- 根据加载的HTML文件更改菜单选项颜色