function change(id){

    var temp = parseInt(id);
var row = temp/10;
var col = temp-(temp/10)*10

if(minearray[row][col]==0)
{
document.getElementById(id).className="buttonstyle2";
}else{

document.getElementById(id2).value=id;

}

if((row+1)<=7&&(col+1<=7)&&minearray[row+1][col+1]==0){
var id2int = (row+1)*10+(col+1)
var id2 = id2int.toString();
    //document.getElementById(id2).className="buttonstyle2";
        document.getElementById(id2).value=id2;
change(id2);
}

}

解决方案 »

  1.   

    function change(id) {
     
      var temp = parseInt(id);
      var row = temp / 10;
      var col = temp - (temp / 10) * 10
     
      if(minearray[row][col] == 0) {//数组minearray 声明呢?
      document.getElementById(id).className = "buttonstyle2";
      } else {
      document.getElementById(id2).value = id;//id2 哪定义的?
      }
     
      if((row + 1) <= 7 && (col + 1 <= 7) && minearray[row + 1][col + 1] == 0) {
      var id2int = (row + 1) * 10 + (col + 1)
      var id2 = id2int.toString();
      //document.getElementById(id2).className="buttonstyle2";
      document.getElementById(id2).value = id2;
      change(id2);
      }
     
      }楼主贴全点吧。
      

  2.   

    感谢各位,我已经发现问题所在了,就是说js的函数不能传实例,id2是个string型的实例,所以无法调用,我把所有的参数都改成了object,在函数中用object.id来调用,就解决这个问题了。但是新的问题来,求问为什么同样的JS代码写的扫雷应用,在opera和chrome上能够正常运行,但是到了ie和firefox上就会出现左键失效,右键代替左键的功能,原本的右键失效的情况,这是怎么回事呢
      

  3.   


    存储这个状态值很多办法。直接存储在元素的节点上可以
    document.getElementById(元素ID).setAttribute("status","0");js中建一个对象来存储也可以
    var status={};然后将元素的id[如果id不重复的话]当成标识来存放:status[元素ID]=0;当然不一定是元素ID,也可以是任意一个你能快速或直接获取到的不重复的属性,比如它的索引值,都行