2014-07-06 130 views
-1

当我写数组元素时,它不会显示输出,当我点击发送和取消输出将不会打印输出将打印.... plese检查我的查询,如果它的错误...我认为功能是停止工作,当我点击按钮,它没有告诉我document.write不会显示输出

 <html> 
    <TITLE>Javascript Arrays</TITLE> 
    <BODY bgcolor="#F0F0F0"> 
    <h1>Implementation of Sort and Reverse Functions </h>  
    <h2>Enter number of Elements</h2> 
     <form name="Anonymous Ghost"> 
    <INPUT type="number" name="takeinput" id="valueField" size="30"> 
     <Input type="button" name="name1" value="Take Input" onClick="a()"> </form> 
    <form name="Anonymous Ghost"> 
    <Input type="button" name="name2" value="Ascending" onClick="b()"> 
    <Input type="button" name="name3" value="Descending" onClick="c()"> 
     </form> 

      </BODY> 
     <SCRIPT> 
    function a() { 
     var val = parseInt(document.getElementById('valueField').value) 
      var words = new Array(val); 
      for (k = 0; k < words.length; k = k + 1) { 
    words[k] = window.prompt("Enter String # " + k, ""); 
      } 
      } 

     function b() { 
     words.sort() ; 
     document.write("SORTED WORDS:" + "<BR>") ; 
     for (k = 0 ; k < words.length ; k = k + 1) { 
     document.write(words[ k ] + "<BR>") ; 
     } 
     } 

     function c() { 
     words.sort() ; 
     words.reverse() ; 
     document.write("SORTED WORDS:" + "<BR>") ; 
     for (k = 0 ; k < words.length ; k = k + 1) { 
     document.write(words[ k ] + "<BR>") ; 
     } 
     } 
     </SCRIPT> 
     </HEAD> 
     <BODY> 
     </BODY> 
      </HTML> 
+0

'words'是你的'a'函数的局部变量。它在'b'和'c'中都没有定义。所以一个简单的解决办法是将'单词'定义为一个全局变量。 – Arnauld

+0

你是否像这样_really_格式化你的代码?多可怕的一团糟! –

+0

请格式化您的代码。您的编辑应该有一个选项。 –

回答

0

使用功能a()范围界定words所以它不是指出范围的访问。 修改代码,在全局范围内定义words和删除功能a()var关键字所以它不会覆盖全局words

您的代码应该是这样的:

<html> 
    <head> 
     <title>Javascript Arrays</title> 
    </head> 
    <body bgcolor="#F0F0F0"> 
     <h1>Implementation of Sort and Reverse Functions </h1>  
     <h2>Enter number of Elements</h2> 
     <form name="Anonymous Ghost"> 
     <INPUT type="number" name="takeinput" id="valueField" size="30" /> 
     <Input type="button" name="name1" value="Take Input" onClick="a()" /> 
     </form> 
     <form name="Anonymous Ghost"> 
     <Input type="button" name="name2" value="Ascending" onClick="b()" /> 
     <Input type="button" name="name3" value="Descending" onClick="c()" /> 
     </form> 
    </body> 
    <script> 
     var words; 
     function a() { 
      var val = parseInt(document.getElementById('valueField').value); 
      words = new Array(val); 
      for (k = 0; k < words.length; k = k + 1) { 
       words[k] = window.prompt("Enter String # " + k, ""); 
      } 
     } 

     function b() { 
      words.sort() ; 
      document.write("SORTED WORDS:" + "<BR>") ; 
      for (k = 0 ; k < words.length ; k = k + 1) { 
       document.write(words[ k ] + "<BR>") ; 
      } 
     } 

     function c() { 
      words.sort() ; 
      words.reverse() ; 
      document.write("SORTED WORDS:" + "<BR>") ; 
      for (k = 0 ; k < words.length ; k = k + 1) { 
       document.write(words[ k ] + "<BR>") ; 
      } 
     } 
    </script> 
    </html> 

PS:您可以使用开发工具您的浏览器检查Javascripts控制台中的错误。

PS2:保持您的代码整洁。