0

ページ内のいくつかのフィールドの値にアクセスし、それらに対して同じ計算を実行する必要があります。さまざまなフォーム要素に動的にアクセスできるように、このようなことをしたいのですが、機能させることができません。

function numInFamily(famID) {
    var numAdults;
    var numChildren;
    var adultFieldID;
    var childFieldID;

    adultFieldID = 'numAdultsFam' + toString(famID);
    childFieldID = 'numKidsFam' + toString(famID);

    numAdults = parseInt(document.getElementById(adultFieldID).value,10);
    numChildren = parseInt(document.getElementById(childFieldID).value,10);

    return numAdults + numChildren;
}

これらの要素を動的に参照する方法を誰かが説明できますか?

4

1 に答える 1

1

組み込みのtoStringグローバル関数はありません。+ただし、オペレーターが文字列変換を自動的に行うため、このような関数は必要ありません。最初の2つの割り当てを次のように置き換えてください。

adultFieldID = 'numAdultsFam' + famID;
childFieldID = 'numKidsFam' + famID;

また、次のように関数を書き直すことができます。

var numInFamily = (function () {     
    function getVal ( id ) {
        return parseInt( document.getElementById( id ).value, 10 );
    }

    return function ( famID ) {
        return getVal( 'numAdultsFam' + famID ) + getVal( 'numKidsFam' + famID );
    };    
}());

これにより、コードの繰り返しが削除されます。

于 2012-05-14T22:00:12.223 に答える