У меня есть поле выбора. Параметры были оформлены разными цветами через файл 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?