0

我正在尝试使用 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 循环按原样移动到回调函数,它现在可以工作了。

无论如何谢谢!
我真的很感谢我在这个网站上得到的帮助!:)

4

3 回答 3

3

问题是您的调用substring返回了太多的字符串,因此getElementById. 将其更改为:

for(var i = 0; i < shoppingCart.length; i++) {
    var val = shoppingCart[i];
    document.getElementById("id_" + val.substring(5)).value = 5;
}

这是一个更新的小提琴

substring方法(当使用一个参数调用时)返回从指定索引到字符串末尾的字符。由于您指定了索引 3,因此实际上您只需要该数字就会得到“d_1”、“d_2”等。

或者,您当然可以更改附加子字符串的字符串,但我认为这会更令人困惑(不是立即明显将返回哪个元素):

document.getElementById("i" + val.substring(3)).value = 5;
于 2012-06-25T12:11:35.687 回答
2

演示 http://jsfiddle.net/bY4EV/6/

sustring(3)给出d_1如何在 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");
}

​
于 2012-06-25T12:12:51.500 回答
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");
}
于 2012-06-25T12:13:25.787 回答