第一行那个按钮在IE能用,在FF用不了,但是第二行的那三个按钮在两个浏览器都可以,说明
document.getElementById("b[1]").style.background="颜色名"
在FF上是可以用的,所以应该只有两个可能出错的地方,就是if和for语句那里,我搞了一个晚上了都修改得不对……哪位同学懂的帮忙改下吧,谢谢了~新人分数不多,只能加20分了。
代码如下:
<script type="text/javascript">
a=new Array(3)
a[0]=0
a[1]=1
a[2]=2
function scroll0(){
for(i=0;i<a.length;i++){
  if(document.getElementById("b[" + i + "]").style.background=="#900"){
  document.getElementById("b[" + i + "]").style.background="";
  if(i!=a.length-1)
  document.getElementById("b[" + (i+1) + "]").style.background="#900";
  else
  document.getElementById("b[" + 0 + "]").style.background="#900";
  break;
  }
}
}function scroll1(){
document.getElementById("b[0]").style.background="#900"
document.getElementById("b[1]").style.background=""
document.getElementById("b[2]").style.background=""
}
function scroll2(){
document.getElementById("b[0]").style.background=""
document.getElementById("b[1]").style.background="#900"
document.getElementById("b[2]").style.background="" 
}
function scroll3(){
document.getElementById("b[0]").style.background="" 
document.getElementById("b[1]").style.background=""
document.getElementById("b[2]").style.background="#900"}</script><table width="200">
<tr>
<td id="b[0]" align="center" style="background:#900">第一行</td>
</tr><tr>
<td id="b[1]" align="center">第二行</td>
</tr><tr>
<td id="b[2]" align="center">第三行</td>
</tr></table>
<input type="button" onClick="scroll0()" value="点击后下面一行会将变为红色" />
<br /><br />
<input type="button" onClick="scroll1()" value="点击后第一行会将变为红色" />
<input type="button" onClick="scroll2()" value="点击后第二行会将变为红色" />
<input type="button" onClick="scroll3()" value="点击后第三行会将变为红色" />

解决方案 »

  1.   

    在FF中,style.background的值,不是#990这种格式的,而是一串CSS,类似none repeat scroll 0% 0% rgb(153,0,0)的字符串,所以根本就不符合你设的条件,自然也就没法执行切换背景的代码。
      

  2.   

    同学,你运行过代码没有?首先,第二行的按钮能用,说明下面三行代码在FF中是没有问题的
    document.getElementById("b[0]").style.background="#900"
    document.getElementById("b[1]").style.background=""
    document.getElementById("b[2]").style.background=""
    ,其次,我在实际网页中用的是图像代替那颜色,所以,根本就不是你说的那个问题
      

  3.   

    你好,是的,i就是取到最大值3,因为我就三个按钮。
    如果是这行有错的话,for(i=0;i<a.length;i++),是不是说明a.length不能用在for循环中?我把a.length写到网页中,是可以显示为3的。
    如果是这行有错的话if(document.getElementById("b[" + i + "]").style.background=="#900")
    首先,我原来的代码background的值是"url(a.jpg)"的,这个代码不在if语句中的话,也是可以改变颜色的,所以我怀疑是getElementById("b[" + i + "]")括号里的写法有误,但是我改了很多种方法都显示不出来。
      

  4.   

    我测试过了,是if(document.getElementById("b[" + i + "]").style.background=="#900")这一行出问题,可是要怎么改才能得出我想要的这个结果捏,另外document.getElementById("b[" + i + "]").style.background="#900"是可以单独用的,一放到if语句中就不能判断了,郁闷……
      

  5.   

    if(document.getElementById("b[" + i + "]").style.background.toString()=="#900") 试试
      

  6.   

    还是不行啊朋友,我用弹出窗获取document.getElementById("b[" + i + "]").style.background的值,弹出窗里写的是  url("#900") repeat scroll 0% 0% transparent
      

  7.   

    如果不是放在IF语句中,document.getElementById("b[" + i + "]").style.background用来赋值在FF是可以成功的,放到IF语句中后就不能了
      

  8.   

    写错了,我把#900改成一个1X1的单像素颜色图片a.jpg后,弹出窗得到的东西是url("a.jpg") repeat scroll 0% 0% transparent
      

  9.   

    这个我知道,你第一行的代码,之所以不能运行,是因为
    if(document.getElementById("b[" + i + "]").style.background=="#900"){这句代码的判断条件不符合,知道吗?第二行的代码能运行,是因为根本就没判断,直接就赋值了,当然能行.