js实现求平均数功能
今天在项目中遇到了一个求平均值的需求,大致需求就是,页面上面有四个input框,失去焦点就计算平均值,结果保留两位小数,并输出在页面上。不多说了,直接奉上代码,如有更好思路或者想法,都欢迎大家和我讨论。代码如下:
html:
<div id="par">
<input id="test1" class="err" type="text" placeholder="测试信息" value="" />
<input id="test2" class="err" type="text" placeholder="测试信息" value="" />
<input id="test3" class="err" type="text" placeholder="测试信息" value="" />
<input id="test4" class="err" type="text" placeholder="测试信息" value="" />
<div id="test5"></div>
</div>
js:
function handler(arr,avgId){
var l = arr.length,num = 0,sum=0;
for(var i=0;i<l;i++){
sum += getValue(arr[i]);
}
function getValue(id){
var t = typeof id == "object"?id:$("#"+id),val = t.val();
if(!isNaN(val)&&val!=""){
num+=1;
val = Number(val);
}else{val=0;t.val("")};
return val;
}
avgId = typeof avgId =="object"?avgId:$("#"+avgId);
num == 0 ? avgId.text("") : avgId.text((sum/num).toFixed(2));
}
var myArr = ["test1","test2","test3","test4"];
$("#par").on("change",".err",function(){
handler(myArr,$("#test5"));
})
/**
*注意:代码依赖jQuery,使用前,请先引入
*/
转载请注明出处:http://www.cnblogs.com/callmesummer/p/3940222.html
拿出手机扫一扫,希望大家能支持一下: