0

我需要一些帮助来创建一个更改表格一个单元格的背景颜色的下拉菜单。我在下面的代码有效,但仅适用于预定义选项列表。下面列出的现有代码:

<form name="bgcolorForm">Try it now: 
<select onChange="if(this.selectedIndex!=0)
document.getElementById('mycell').bgColor=this.options[this.selectedIndex].value">
<option value="choose">set background color    
<option value="FFFFCC">light yellow
<option value="CCFFFF">light blue
<option value="CCFFCC">light green
<option value="CCCCCC">gray
<option value="FFFFFF">white
 </select></form>
 <table>
     <tr>
         <td id = "mycell">Cell One</td>
         <td>Cell Two</td>
     </tr>
 </table>

我想修改此代码,使其引用现有列表中包含的值列表(HTML 颜色名称)。例如,我没有列出选项值,而是:

<select name="bg_color" id="bg_color" onchange=...>

我在编写代码的“onchange”部分时遇到了麻烦。我认为我需要创建一个变量才能做到这一点......我想我需要进入 .text 部分,因为我的下拉列表包含颜色名称,如“红色、蓝色、绿色等”。以下是我试图实现这一目标的方法。

<script type="text/javascript">
var e = document.getElementById("bg_color");
var newcolor = e.options[e.selectedIndex].text; 
</script>

我在正确的轨道上吗?请让我知道您将如何完成此任务。

另外,我很好奇我是否想将它应用到我必须进行哪些额外更改?

4

2 回答 2

0

你忘了把#换成颜色=>#FFFFCC

试试看:

<option value="#FFFFCC">light yellow
<option value="#CCFFFF">light blue
<option value="#CCFFCC">light green
<option value="#CCCCCC">gray
<option value="#FFFFFF">white
于 2012-08-29T04:23:51.433 回答
0

你可以使用 jquery 来简化你的代码,它也会避免你很多其他跨浏览器的 javascript 问题。我在这里使用您的表格整理了一个样本。

http://jsfiddle.net/M8U7D/

于 2012-08-29T04:29:06.953 回答