我的页面上有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(因为函数正在重新创建变量)。
有人可以帮我解决一下如何获取下一个输入框值吗?
答案 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:
,而不是依赖于IDhttps://developer.mozilla.org/en-US/docs/DOM/Node.nextSibling
var firstItem=document.getElementById("box1");
var nextItem=firstItem.nextSibling;
etc.