[英]Can't set the value of input with Javascript
我正在嘗試使用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循環移到了回調函數上,並且現在可以使用了。
不管怎么說,多謝拉!
我真的很感謝我在此站點上獲得的幫助! :)
問題在於您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;
演示 http://jsfiddle.net/bY4EV/6/
sustring(3)
給出d_1
: 如何在jquery sustring(3)
字符串
希望這可以幫助
碼
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");
}
對此進行檢查, 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");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.