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



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

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

CCD_ 1编码如下:

<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;

}

但当我点击任何单元格时,背景颜色都保持不变。我刚开始使用CSS和JS。请帮我。提前感谢

使用

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

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

而不是

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

使用

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

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

<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的while for:

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

最新更新