我需要访问页面中许多字段的值并对它们执行相同的计算。我想做这样的事情,允许我动态访问不同的表单元素,但我无法让它工作:
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;
}
有人可以解释我如何动态引用这些元素吗?
答案 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 );
};
}());
这将删除代码重复。