使用JavaScript从变量中获取getElementById

时间:2012-10-19 02:16:47

标签: javascript getelementbyid

我的页面上有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变量,则返回undefined。

如果我将current_item变量添加到我的函数中,它可以正常工作并执行我想要的操作,但会保持重置为1(因为函数正在重新创建变量)。

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

4 个答案:

答案 0 :(得分:2)

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

var current_item = 1;

而不是

var current_item = "1";

<强> jsFiddle example

答案 1 :(得分: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 (+) sign concatenates instead of giving sum of variables

答案 2 :(得分:1)

我的猜测是你在搞乱不同的类型。 current_item以字符串形式开头,但随后您添加了一个数字,因此current_item + 1的结果将是11而不是2。试试:

var current_item = 1

答案 3 :(得分:0)

似乎你正在混合字符串和数字,正如其他答案中所解释的那样。

现在,您的问题是抓住下一个输入。您可以简单地使用node.nextSibling:

,而不是依赖于ID

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

var firstItem=document.getElementById("box1");
var nextItem=firstItem.nextSibling;
etc.