0

テキストボックスに入力された値を取得し、その値を計算に使用するコードをリファクタリングしています。問題は、document.getElementByID を複数回使用するのではなく、ページ上の各テキスト ボックスをループし、計算関数に渡すこのオブジェクトに各値を割り当てたいことです。また、入力テキスト ボックス ID を確認し、オブジェクト プロパティ名の ID 文字列を使用して、このオブジェクトのプロパティ名を設定したいと思います。

以下のコードを参照してください。

$(document).ready(function() {

    var calcObj = new Object();
    $("input[id^='txt']").each(function(i, val) {
        calcObj[i] = this.value;
    });



    $.each(calcObj, function(i, val) {
        //        alert(val);
    });

}); 

ご覧のとおり、ドキュメントの準備が整うと、オブジェクトが作成されます。txtを含むidを持つすべての入力を通過するjquery .eachループがあります。インデックスが i のオブジェクトに this.value を割り当てています。

したがって、このオブジェクトのプロパティに名前を付けて値を割り当てる方法をいくつか試して、このオブジェクトを別の関数に渡すコードの他の場所でオブジェクトのプロパティ名を参照できるようにします。

ありがとう。

4

2 に答える 2

1

私が理解している限り、あなたは次のことを望んでいます:

calcObj[this.id] = this.value;
于 2012-06-21T10:23:58.540 に答える
1

私はあなたが求めていることを正確に理解していません.

現在、次のことを行っています。

calcObj[i] = this.value;

それは、次のように割り当てることと同じです。

calcObj['foo'] = this.value;

// and later we can access that via
alert( calcObj.foo );  // or calcObj['foo']

次のように、それで動的にすることもできます。

calcObj[this.id] = this.value;
于 2012-06-21T10:24:30.580 に答える