【发布时间】:2013-03-23 06:07:15
【问题描述】:
我有一个选择框。这些选项已通过引用的 CSS 文件以不同的颜色设置样式。我希望能够选择一个选项并将关闭的选择框的文本颜色更改为所选选项的颜色。
<select id="mySelect" class="yellowText">
<option class="greenText" value="apple" >Apple</option>
<option class="redText" value="banana" >Banana</option>
<option class="blueText" value="grape" >Grape</option>
</select>
所以如果我选择香蕉,文本应该从黄色变为红色。
我试过了:
onchange="this.style.color = this.options[this.selectedIndex].style.color;"
但这只有在我在 html 文档中的选项标签中定义我的样式时才有效。
我也尝试过 JavaScript:
function setSelectColor(thisElement){
var thisElem = document.getElementById(thisElement);
var thisOption = thisElem.options[thisElem.selectedIndex];
var newColor = getStyle(thisOption,"color");
alert("New Color: "+ newColor);
}
但这总是返回颜色:白色。 getStyle 函数在我使用它的其他任何地方都有效,所以我不认为这是问题所在。
我从这个网站获得了 getStyle:
function getStyle(oElm, strCssRule){
var strValue = "";
if(document.defaultView && document.defaultView.getComputedStyle){
strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
}
else if(oElm.currentStyle){
strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
return p1.toUpperCase();
});
strValue = oElm.currentStyle[strCssRule];
}
return strValue;
}
如何用 JavaScript 解决这个问题?
【问题讨论】:
-
您的
onchange尝试获取backgroundColor,但您的setSelectColor尝试获取color。这是故意的吗? -
@Passerby 复制粘贴错误。固定。
-
你试过这个解决方案了吗? stackoverflow.com/a/20538979/452587
标签: javascript html css drop-down-menu colors