我正在尝试使用Javascript更改输入字段的值 我尝试了一切,但似乎没有任何作用。我尝试将5放在引号之间并使用jquery。我还仔细检查了数组和所有内容。
这是输入代码:
<input type="number" id="id_[SOME_ID_HERE]" value="0">
和用于更新值的循环。
for (var i = 0; i < shoppingCart.length; i++) {
var val = shoppingCart[i];
document.getElementById("id_" + val.substring(3)).value = 5;
}
jsfiddle:http://jsfiddle.net/zkTud/
编辑:似乎它不适用于type =“text”以及......
EDIT2:谢谢大家的回答。我的问题其实是别的。
输入是从另一个页面加载的,这需要时间,并且在文件加载完成之前执行了我遇到问题的for循环(见上文)。
我所做的只是将for循环移动到回调函数,现在可以正常工作。
答案 0 :(得分:3)
问题是您对substring
的调用返回的字符串过多,因此getElementById
找不到任何元素。将其更改为:
for(var i = 0; i < shoppingCart.length; i++) {
var val = shoppingCart[i];
document.getElementById("id_" + val.substring(5)).value = 5;
}
这是一个updated fiddle。
substring
方法(使用一个参数调用时)返回指定索引到字符串末尾的字符。由于您指定了索引3,因此当您只想要该数字时,会得到“d_1”,“d_2”等。
或者,您当然可以更改附加子字符串的字符串,但我认为读取会更加混乱(不会立即显示将返回哪个元素):
document.getElementById("i" + val.substring(3)).value = 5;
答案 1 :(得分:2)
演示 http://jsfiddle.net/bY4EV/6/
sustring(3)
提供d_1
:How to substring in jquery
希望这会有所帮助
<强>码强>
var shoppingCart = new Array();
shoppingCart[0] = "prod_1";
shoppingCart[1] = "prod_3";
shoppingCart[2] = "prod_2";
for(var i = 0; i < shoppingCart.length; i++) {
var val = shoppingCart[i];
$("#id_" + val.substring(5)).val("5");
}
答案 2 :(得分:1)
选中此项JSFiddle,更新并更正了您的问题。
代码:
var shoppingCart = new Array();
shoppingCart[0] = "prod_1";
shoppingCart[1] = "prod_3";
shoppingCart[2] = "prod_2";
for(var i = 0; i < shoppingCart.length; i++) {
var val = shoppingCart[i];
$("#id" + val.substring(4)).val( "5");
}