function compute(obj) {
var a = $("li").eq(0).text();
var b = $("li").eq(1).text();
var c = $("li").eq(2).text();
$("obj.el").html(
obj.reult(a,b,c)
)
};
compute ({
el : "body",
resule: function(a,b,c){reutrn a-b-c}
})
大概是这样的,需要每次传入不同的计算换算,页面的不通的结果,abc的参数是可变的,a-b-c的计算公式也是可变的。
我想要的效果是这样
compute({el: "#p1",resulte: function(a,b){return a+b}})在p1里面得到一个计算公式的值
compute({el: "#p2",resulte: function(a,b,c,d){return a*b/c+d}})在p2里面得到一个计算公式的值,
阿神2017-04-10 14:25:28
<ul id="arguments">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<h1 id="result"></h1>
function compute(params){
var resultBox=params.resultBox,
calculate=params.calculate,
arguments=document.querySelectorAll('#arguments li'),
resultBox=document.querySelector(resultBox),
args=[];
for(var i in arguments){
var arg=arguments[i];
args.push(Number(arg.innerText));
}
var result=calculate.apply(this,args);
resultBox.innerText=result;
}
compute({
resultBox:'#result',
calculate:function(a,b,c){
return a+b+c
}
})
http://jsfiddle.net/windwhinny/X6Rtv/1/
黄舟2017-04-10 14:25:28
你的意思是参数不定,不然你原来的脚本不是已经达到目的了?
function compute(obj) {
var a = [], i = 0, $li = $('li');
for(;i < $li.length;i++){
a[i] = $li.eq(0).text();
}
$(obj.el).html(
obj.result(a)
)
};
compute ({
el : "#p1",
result: function(arr){reutrn arr[0]+arr[1]}
});
compute ({
el : "#p2",
result: function(arr){return arr[0]*arr[1]/arr[2]+arr[3]}
});