使用标记<table> </table>中的JavaScript更改CSS属性

时间:2013-08-09 10:28:28

标签: php javascript html

我正在开发一个在线测验应用程序,它提供了所有问题的列表,当用户点击问题编号时,应显示相应的问题。当用户点击任何问题编号时,应更改编号为单元格背景颜色的问题。为此,我的JS如下

<script>
function changecolor(x)
{
    document.getElementById(x).style.background-color="#4ead3a";
}
 </script>

table代码如下:

<table border=1>
<tr>            
<?php
for($i=1;$i<=$count;$i++)
{ ?>
<td id="<?php echo  $i; ?> " align="center" style="width:50px"    onclick="changecolor(id)" >
    <a href="http://127.0.0.1/example/runquiz.php?x=<?php echo  $i; ?>" ><?php   echo  $i; ?> </a> 
    <input type="hidden" name=<?php echo  $i; ?> value="" >
</td>
<?php }
 ?>
 </tr></table>

和css如下

td{
vertical-align:middle;
background-color:#dbd6d2;
border:1px solid #000000;
border-width:0px 1px 1px 0px;
text-align:center;
padding:7px;
font-size:10px;
font-family:Arial;
font-weight:bold;
color:#000000;

}

但是当我点击任何单元格时,背景颜色保持不变。我是新用的JS和JS。请帮我。提前致谢

3 个答案:

答案 0 :(得分:4)

使用

document.getElementById(x).style.backgroundColor="#4ead3a";

http://www.w3schools.com/jsref/prop_style_backgroundcolor.asp

答案 1 :(得分:0)

而不是

    document.getElementById(x).style.background-color="#4ead3a";

使用

    document.getElementById(x).style.background="#4ead3a";

答案 2 :(得分:0)

我给你一个建议。 你可以使用

<div></div>

这样:

<?php
for($i=1;$i<=$count;$i++)
{ ?>
<div id="<?php echo $i; ?>" style="width:50px;display:inline-table" onclick="changecolor(<?php echo i;?>)">
    <a href="http://127.0.0.1/example/runquiz.php?x=<?php echo  $i; ?>" ><?php   echo  $i; ?> </a> 
    <input type="hidden" name=<?php echo  $i; ?> value="" >
<?php } ?>

之后你可以使用jquery并执行以下操作:

function changecolor(id){
$("#"+id).css({"background-color":"#4ead3a"});
}

只是为了让你知道,不推荐使用,无论如何,在你的代码中,你错过了调用I var on for:

onclick="changecolor(<?php echo i;?>)">