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メソッド(1つの引数で呼び出された場合)は、指定されたインデックスから文字列の最後までの文字を返します。インデックス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_1jqueryで部分文字列を作成する方法

お役に立てれば

コード

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 に答える