我希望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>
答案 0 :(得分:5)
尝试使用括号来获取它们:
var num = document.calculator[ 'textbox' + i ].value;
所以通常你可以通过两种方式访问对象:
myObj.myProp
myObj[ 'myProp' ]
两种方式都相同,但在第二种情况下,您可以使用变量+字符串连接等。
答案 1 :(得分:0)
我就是这样做的。我使用了类而不是id。这样,添加更多输入会更容易,因为您不必担心增加ID并更改x
var。
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);
}