1

我的页面上有10个输入框..

<input type="text" id="box1">
<input type="text" id="box2">
<input type="text" id="box3">
<input type="text" id="box4">
<input type="text" id="box5">
<input type="text" id="box6">
<input type="text" id="box7">
<input type="text" id="box8">
<input type="text" id="box9">
<input type="text" id="box10">

使用 JavaScript 我希望能够选择每个的输入,但只能根据请求使用 JavaScript。

我使用了以下代码:

document.getElementById("box1").value

返回值(我想要的)

但是我希望能够用它做一些事情然后请求下一个项目然后用那个做一些事情..

所以我创建了一个虚拟变量(放置在我的函数之外,因为我不想在每次调用函数时将值重置回 1:

var current_item = "1";

然后我希望能够使用这个变量来选择一个项目,我已经像这样使用它:

document.getElementById("box" + current_item).value
current_item = current_item + 1;

但是它不起作用。如果我提醒 current_item 变量,它会返回未定义。

如果我将 current_item 变量添加到我的函数中,它可以工作并执行我希望它执行的操作,但会不断重置回 1(因为函数正在重新创建变量)。

任何人都可以帮助我解决如何获取下一个输入框的值吗?

4

4 回答 4

2

尝试将 current_item 设为数字而不是字符串。

var current_item = 1;

代替

var current_item = "1";

jsFiddle 示例

于 2012-10-19T02:19:00.017 回答
2

current_item 是一个字符串,当您使用+运算符时,它会进行连接而不是加法。

"1" + 1
"11"

如果您使用var current_item = 1;,它将是一个整数,您可以通过执行添加它+1

还,

var current_item = "1";
current_item = current_item*1 + 1;
2

当你乘以 1 时,它会将其转换为一个 int,然后加 1,这会产生 2,正如你所期望的那样。

相关问题:Javascript (+) 符号连接而不是给出变量的总和

于 2012-10-19T02:19:32.177 回答
1

我的猜测是你在搞乱不同的类型。current_item以字符串开头,但随后添加一个数字,因此结果current_item + 111不是2. 尝试:

var current_item = 1
于 2012-10-19T02:19:46.120 回答
0

如其他答案中所述,您似乎正在混合字符串和数字。

现在,您的问题是关于获取下一个输入。您可以简单地使用 node.nextSibling,而不是依赖于 id:

https://developer.mozilla.org/en-US/docs/DOM/Node.nextSibling

var firstItem=document.getElementById("box1");
var nextItem=firstItem.nextSibling;
etc.
于 2012-10-19T04:11:47.477 回答