小提琴:https://jsfiddle.net/252jxsjq/1/
如何显示65而不是64.72343432 ......?
最后,如何让所有用户的点击次数相等? 例如,现在如果我在按钮上单击60次,如果我更改了电脑,则显示的时间为0。
jQuery的:
var counter = localStorage.getItem('rans') || 0;
$('.redanswer').click(function(){
localStorage.setItem('rans', ++counter);
$( '.bpercent' ).html( counter1 * 100 / (counter1+counter) + "%" );
$( '.rpercent' ).html( counter * 100 / (counter1+counter) + "%" );
});
var counter1 = localStorage.getItem('bans') || 0;
$('.blueanswer').click(function(){
localStorage.setItem('bans', ++counter1);
$( '.rpercent' ).text( counter * 100 / (counter1+counter) + "%" );
$( '.bpercent' ).text( counter1 * 100 / (counter1+counter) + "%" );
});
答案 0 :(得分:1)
使用JavaScript的Math.round功能。
$('.redanswer').click(function(){
localStorage.setItem('rans', ++counter);
$( '.bpercent' ).html( Math.round( counter1 * 100 / (counter1+counter) ) + "%" );
$( '.rpercent' ).html( Math.round( counter * 100 / (counter1+counter) ) + "%" );
});
本地存储将状态或变量保存到客户端计算机(或称为浏览器)。 正如Mike所说,如果你想为所有设备节省价值,那么你将需要一些服务器端实现,它们可以管理全世界所有用户的点击计数器。
答案 1 :(得分:0)
您必须确保在执行counter1+counter
时,您正在添加整数而不是连接字符串。 parseInt()
会对此有所帮助。
此外,正如其他人所提到的那样,Math.floor()
或Math.round()
可以为此提供帮助。
这样的事情会起作用:
counter = localStorage.getItem('rans') || 0;
$('.redanswer').click(function(){
localStorage.setItem('rans', ++counter);
sum = (parseInt(counter1) + parseInt(counter));
$( '.bpercent' ).html( Math.floor(counter1 * 100 / sum) + "%" );
$( '.rpercent' ).html( Math.floor(counter * 100 / sum) + "%" );
});
counter1 = localStorage.getItem('bans') || 0;
$('.blueanswer').click(function(){
localStorage.setItem('bans', ++counter1);
sum = (parseInt(counter1) + parseInt(counter));
$( '.rpercent' ).text( Math.floor(counter * 100 / sum) + "%" );
$( '.bpercent' ).text( Math.floor(counter1 * 100 / sum) + "%" );
});
你可以在这个JS小提琴中看到它:https://jsfiddle.net/igor_9000/252jxsjq/4/
对于跨不同计算机的永久存储,请查看一些服务器端语言并为不同用户存储信息。
希望有所帮助!