Javascript:以编程方式构造html元素ID

时间:2012-05-14 21:57:09

标签: javascript html

我需要访问页面中许多字段的值并对它们执行相同的计算。我想做这样的事情,允许我动态访问不同的表单元素,但我无法让它工作:

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;
}

有人可以解释我如何动态引用这些元素吗?

1 个答案:

答案 0 :(得分: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 );
    };    
}());

这将删除代码重复。