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全局函数。但是您不需要这样的函数,因为+运算符会自动进行字符串转换。只需将前两个作业替换为:

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 回答