【问题标题】:creating a for-loop using Javascript?使用 Javascript 创建一个 for 循环?
【发布时间】:2011-05-15 19:23:58
【问题描述】:

我在使用 Javascript 创建 for 循环时遇到问题。似乎一切对我来说都很好,但我仍然没有得到我想要的。

请查看此代码以了解更多信息:

  • 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 循环时,一切正常!

有什么想法吗?

【问题讨论】:

  • int 不是 javascript 中的数据类型。请使用 javascript 调试器(如 firefox 上的 firebug)来帮助您。

标签: javascript forms for-loop


【解决方案1】:

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

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

【讨论】:

  • 天啊!我多么想念它!有时你会在 Java 和 Javascript 之间混用。谢谢@Guffa :)
  • @2rk:我在 C# 和 Javascript 之间跳转时遇到了同样的问题。我已经多次犯过完全相同的错误。 :)
【解决方案2】:

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

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();

【讨论】:

  • 你忘记了循环的右括号。
猜你喜欢
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
  • 2021-12-01
相关资源
最近更新 更多