我一直在努力寻找与我想要的相似的东西,但似乎无法找到确切的解决方案。我不是一个HTML程序员,但我必须在HTML中做一些工作,所以我正在学习。我知道我的代码可能有点乱/不需要,所以请原谅我。我已经找到了一些类似的javascript,所以你会在下面看到这一点。
- 首先,我创建了一个表格,在单元格中插入了选择框和文本区域
- 选择框是从MySQL生成的(我也使用PHP)
- 当我从该选择框中选择特定选项时,我希望在不同的单元格中更改文本区域背景
- 我已经给了文本区域一个ID,这样就可以实现这一点
我目前可以使用这个:
<select onChange="updateColor(this.options[this.selectedIndex].value);" name="sunday combo" id="Suncombo2">
<option value= " " selected="selected">Please Select</option>
<option value="FFFFCC">light yellow
<option value="CCFFFF">light blue
<option value="CCFFCC">light green
<option value="CCCCCC">gray
<option value="FFFFFF">white'
Javascript:
<SCRIPT LANGUAGE="JavaScript">
function updateColor(color){
var myCell = document.getElementById('2ndInputSun');
myCell.style.background = "#"+color;
}
HTML:
<tr class="5row">
<td class="2ndInputMon"><textarea></textarea></td>
<td class="2ndInputTues"><textarea></textarea></td>
<td class="2ndInputWed"><textarea></textarea></td>
<td class="2ndInputThurs"><textarea></textarea></td>
<td class="2ndInputFri"><textarea></textarea></td>
<td class="2ndInputSat"><textarea></textarea></td>
<td class="2ndInputSun"><textarea></textarea></td>
然而,当我插入所有这些内容时,文本区域的颜色没有变化。
您没有给元素一个ID,而是给了它们一个class。因此getElementById()将不起作用。更改html以添加ID而不是CLASS。
function updateColor(color){
myCell = document.getElementById('2ndInputSun');
myCell.firstChild.style.backgroundColor = "#"+color;
}
这将更改文本区域的颜色(td的firstChild)。
此外,您可以简化:onchange="updateColor(this.value);
演示:http://jsfiddle.net/hrybcahk/