2

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>
4

2 に答える 2

5

ブラケットを使用してそれらを取得してみてください:

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

したがって、通常、次の 2 つの方法でオブジェクトにアクセスできます。

  1. ドット経由:myObj.myProp
  2. ブラケット経由:myObj[ 'myProp' ]

どちらの方法も同じですが、2 番目に、変数 + 文字列連結などを使用できます。

于 2013-06-09T13:42:38.123 に答える
0

これは私がそれを行う方法です。ID の代わりにクラスを使用しました。この方法では、ID の増分や変数の変更について心配する必要がないため、より多くの入力を追加するのがはるかに簡単になりますx

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);
}
于 2013-06-09T13:54:53.823 に答える