2011-05-15 29 views
1

我有一个问题,使用Javascript创建一个for-loop。看起来对我而言,每个人都很好,但我仍然没有得到我想要的。使用Javascript创建一个for-loop?

看看请回覆此代码来了解更多:

  • HTML表单代码:

    <form name="myform"> 
        <textarea name="inputtext" cols="100%" rows="10%"></textarea><br /> 
        <input type="radio" name="options" value="javascript" checked> Option1 <br /> 
        <input type="radio" name="options" value="windows"> Option2<br /> 
        <input type="button" value="Do it" onClick="generate();"><br /> 
        <textarea name="outputtext" cols="100%" rows="10%"></textarea><br /> 
    </form> 
    
  • 的JavaScript代码:

    function generate() { 
    var code = ""+document.myform.inputtext.value; 
    if (document.myform.options[0].checked) { 
        document.myform.outputtext.value = escape(code); 
    } 
    else { 
        var result= "2- "; 
        for(int i=0; i<code.length; i++) { 
        //There will be some logic to decide if to add the char or not. 
        result+=code.charAt(i); 
        } 
        document.myform.outputtext.value = result; 
    } 
    } 
    

的问题对我来说并不明确。 但是,当我尝试注释for循环时,一切正常!

有什么建议吗?

+0

'int'不是JavaScript中的数据类型。请使用JavaScript调试器(如firefox上的firebug)来帮助你。 OMG! – Munim 2011-05-15 19:26:51

回答

8

Javascript中没有int数据类型(或任何用于声明变量的数据类型)。

for(var i=0; i<code.length; i++) { 
+0

OMG!我多么想念这个!有时你在Java和Javascript之间混合使用。谢谢@Guffa :) – iTurki 2011-05-15 19:29:02

+0

@ 2rk:我在C#和Javascript之间跳转的问题相同。我几次完成了完全相同的错误。 :) – Guffa 2011-05-15 20:20:16

0

还有一个面向对象的解决方案。

var generate = { 
    loop: function() { 
     var code = ""+document.myform.inputtext.value; 

     if (document.myform.options[0].checked) { 
      document.myform.outputtext.value = escape(code); 
     } 
     else { 
      var result= "2- "; 
      //CHANGE THE INT(I assume Java) DATATYPE TO A LOCAL VARIABLE USING THE var KEYWORD TO KEEP THE SCOPE IN THE FOR LOOP 
      //RECURSION CAN BE QUICKER 
      for(var i=0; i<code.length; i++) { 
      //There will be some logic to decide if to add the char or not. 
      result+=code.charAt(i); 
     } 
     document.myform.outputtext.value = result; 
    } 
} 

generate.loop(); 
+0

您忘记了循环的右括号。 – Guffa 2011-05-15 19:40:46