如果javascript声明有问题

时间:2011-07-12 22:08:29

标签: javascript html

      <!DOCTYPE html>
  <html>
 <head>
 </head>
 <body>
 <hr>
 <div>

   <div id="myPos">

 </div>


 </div>

  <hr>
  <!--Storing my array -->
  <div id="myArray">

  </div>

  <br>
  <br/>
  <hr>

   <script type="text/javascript">
   var pos=-1;


   function randomSort(a,b){
return(parseInt(Math.random()*10)%2);
     }

   function roll(){
var myGun = new Array();
myGun[0]="First Slot";
myGun[1]="Second Slot";
myGun[2]="Third Slot";
myGun[3]="Fourth Slot";
myGun[4]="Fifth Slot";
myGun[5]="Sixth Slot";
myGun.sort(randomSort).toString();

document.getElementById("myArray").innerHTML="";



for(i=0;i<myGun.length;i++)
{
    document.getElementById("myArray").innerHTML+=myGun[i]+ "<br>"; 
}

    document.getElementById("myPos").innerHTML= "Position:"+ (pos=-1);
     }

function shot(){

    if(pos<myGun.length)
    {
        document.getElementById("myPos").innerHTML="Position:"+ (pos=pos+1) +"<br/>";


   }
    else
    {
       alert("you loose");
    }
       return pos;
}

     </script>

<footer>
    <button id="btnRoll" onclick="roll()">Roll</button>
    <button id="btnShot" onclick="shot()">Shot</button>
</footer>
    </body>
    </html>

3 个答案:

答案 0 :(得分:0)

试试这个:

function shot(){
        if(pos>=myGun.length)
        {
            pos = pos +1;
            document.getElementById("myPos").innerHTML="Position:"+ pos +"<br/>";

       }
        else
        {
           alert("you loose");
        }
    }

答案 1 :(得分:0)

您需要将“&gt; =”替换为“&lt;”:

if( pos < myGun.length ) { ...

那就是说,你也在使用不推荐使用的全局变量。

编写此函数的更好方法是:

function shot( pos, myGun ) {
  if ( pos < myGun.length ) {
    document.getElementById( "myPos" ).innerHTML="Position:"+ ++pos + "<br/>";
  } else {
    alert( "you loose" );
  }
  return pos;
}

请注意,该函数在增量后返回更新后的位置。

答案 2 :(得分:0)

试试这个,它对我有用,但我输了。 :)我已修复了几个minior错误并对HTML进行了一些调整,其中没有问题。这里的问题是数组 - 它是第二个函数的局部变量,但不是第三个函数 - 我已将它变为golobal变量为pos,但是将其重置为 roll (您的原始定义看起来应该是在那里重置。)

第一个函数不需要a和b参数,因为它不使用它们。 我已将所有内容移动到页面标记中,但您也可以将其内容编写在单独的.js文件中以便于阅读:
<script type="text/javascript" src="path to file"></script>

告诉我这是否适合你。

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
        var pos = -1;
        var myGun = new Array;

        function randomSort()
        {
            return parseInt(Math.random() * 10) % 2;
        }

        function roll()
        {
            myGun = [];
            myGun[0]="First Slot";
            myGun[1]="Second Slot";
            myGun[2]="Third Slot";
            myGun[3]="Fourth Slot";
            myGun[4]="Fifth Slot";
            myGun[5]="Sixth Slot";
            myGun.sort(randomSort).toString();

            document.getElementById("myArray").innerHTML = '';



            for(i=0; i < myGun.length; i++)
                document.getElementById("myArray").innerHTML += myGun[i] + "<br />";

            document.getElementById("myPos").innerHTML = "Position:" + (--pos);
        }

        function shot()
        {
            if(pos < myGun.length)
                document.getElementById("myPos").innerHTML = "Position:" + (pos++) + "<br />";
            else
                alert("you loose");

            return pos;
        }

     </script>
 </head>
 <body>
    <hr />
    <div>
        <div id="myPos"></div>
    </div>

    <hr />
    <!--Storing my array -->
    <div id="myArray">

    </div>

    <br />
    <br />

    <footer>
        <input type="button" id="btnRoll" onclick="roll()" value="Roll" />
        <input type="button" id="btnShot" onclick="shot()" value="Shot" />
    </footer>
</body>
</html>