【问题标题】:Use a variable in this javascript for loop [duplicate]在此javascript for循环中使用变量[重复]
【发布时间】:2013-06-05 07:15:50
【问题描述】:

我希望 for 循环打印出所有文本框的值,但这样认为它不起作用,我该怎么做?

<script>
    current = x;

    for (var i = 0; i < current; i++) {    
        var num = document.calculator.textbox + i + .value;    
        document.write("<br>" + num);    
    }
</script>
<form name="calculator">
    <input type="text" name="textbox1">
    <input type="text" name="textbox2">
    <input type="text" name="textbox3">
    <input type="text" name="textbox4">
    <input type="text" name="textbox5">
    <!--...... infinite amount of textboxes-->
</form>

【问题讨论】:

  • @Quentin,我觉得不像。
  • 这只是read_prop(document.calculator, "textbox"+ 1); 有点极端,但它会起作用。 dot and bracket的很好解释

标签: javascript variables


【解决方案1】:

尝试使用括号来获取它们:

var num = document.calculator[ 'textbox' + i ].value;

所以一般你可以通过两种方式访问​​对象:

  1. 通过点:myObj.myProp
  2. 通过括号:myObj[ 'myProp' ]

这两种方式是相等的,但第二个你可以使用变量+字符串连接等。

【讨论】:

  • 嗯,不知道为什么这被否决了——这是正确的做法。您应该添加一个快速说明,您可以使用 [] 数组语法来引用对象键
  • 很奇怪,如果 i 设置为 0 则不起作用..
  • 因为您的示例代码中没有 id 为零的输入...
  • @user2468350 我刚刚向您展示了如何通过方括号访问对象。其余的你自己写吧。
【解决方案2】:

我会这样做。我使用类而不是 id。这样,添加更多输入就容易多了,因为您不必担心增加 id 和更改 x var。

http://jsfiddle.net/NXPKh/2/

var tbs = document.calculator.getElementsByClassName('textbox');

for (var i = 0; i < tbs.length; i++) {
    var body = document.getElementsByTagName('body') [0];
    var br = document.createElement("br");
    var text = document.createTextNode(tbs[i].value);
    body.appendChild(br);
    body.appendChild(text);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-05
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多