点击 数字随着变化html,js数字随着其他数字变化而变化?

遇到这么一个需求:

bVVGGu?w=452&h=380

bVVGt4?w=403&h=282

bVVIRF?w=496&h=308

就是可打分数要随着他的打分后要变化,也就是减掉他打分的分数。

想要的结果是打分之后,可打分数减去打分的分数,当更改打分的分数后,当前可打分数复原然后再减去更改的分数。

html代码:

队长打分

当前可打分数

团队分10%为队长,50%平均,40%队长可奖励给优秀队员,打完分后请记得点击确认!

js代码:

//获取队长当前可打分数

var ava_fra;

function captain_fraction(){

$.ajax({

url: serverurl,

type: "GET",

data: {

type:'10073',

actid:'100050',

tem:'4'

},

dataType:'JSON',

success: function(result) {

result=eval("("+result+")");

ava_fra = result;

$('.mark em').html(ava_fra);

get_team_info();

},

error: function(jqXHR, textStatus, errorThrown) {

alert('通讯失败,请刷新重试!');

}

});

}

var fraction=[];

//获取队员信息

function get_team_info(){

$.ajax({

url: serverurl,

type: "GET",

data: {

type:'10071',

actid:'100050',

tem:'4'

},

dataType:'JSON',

success: function(result) {

result=eval("("+result+")");

$.hideLoading();

var str = '';

for (var i = 0; i < result.length; i++) {

str += '

'

+ '

'

+ ''

+ '

'

+ '

'

+ '

'+result[i].nickname+'
'

+ '

'+result[i].jobname+'
'

+ '

'

+ '

'

+ '未打分'

+ '打分'

+ '

'

+ '

'

}

$('.play_info').html(str);

},

error: function(jqXHR, textStatus, errorThrown) {

alert('通讯失败,请刷新重试!');

}

});

}

//打分

function mark(e,id){

$.prompt("", "请输入您要打的分数", function(text) {

var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/

if (!re.test(text)) {

$.toptips('请输入数字!');

return false;

}

$(e).siblings('.prompt').html('已打'+''+text+''+'分');

// var num = text.replace(/[^0-9]/ig,""); //在字符串中提取数字

$(e).text('更改');

var num = $(e).siblings('.prompt').find('em').text();

// 筛选出更改对象

var obj = fraction.filter(function(value) {

return value.userid === Number(id);

})[0];

// id对应的对象不存在

if (!obj) {

fraction.push({

userid: id,

mark: num

})

return

}

// 对象存在,修改分数

obj.mark = num;

}, function() {

//取消操作

});

}

请教一下这个该怎么做。。谢过哈

**打分修改后的代码:**

//打分

function mark(e,id){

$.prompt("", "请输入您要打的分数", function(text) {

var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/

if (!re.test(text)) {

$.toptips('请输入数字!');

return false;

}

$(e).siblings('.prompt').html('已打'+''+text+''+'分');

// var num = text.replace(/[^0-9]/ig,""); //在字符串中提取数字

$(e).text('更改');

var num = $(e).siblings('.prompt').find('em').text();

var diff = 0;

// 筛选出更改对象

var obj = fraction.filter(function(value) {

return value.userid === Number(id);

})[0];

// id对应的对象不存在

if (!obj) {

fraction.push({

userid: id,

mark: num

})

diff = num; // 计算差值

console.log("diff:"+diff);

}else{

diff = obj.mark - num; // 计算差值

console.log(diff)

// 对象存在,修改分数

obj.mark = num;

}

var $markDom = $('.mark em');

// 刷新分数

$markDom.html(Number($markDom.html()) + diff);

console.log("$markDom.html():"+$markDom.html());

}, function() {

//取消操作

});

}

但是有个问题就是修改后的分数第一次被追加到了可打分数后面,而且后面再修改也是不准确,如图:

bVVHWv?w=908&h=252

再次修改代码后:

//打分

function mark(e,id){

$.prompt("", "请输入您要打的分数", function(text) {

var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/

if (!re.test(text)) {

$.toptips('请输入数字!');

return false;

}

$(e).siblings('.prompt').html('已打'+''+text+''+'分');

// var num = text.replace(/[^0-9]/ig,""); //在字符串中提取数字

$(e).text('更改');

var num = Number($(e).siblings('.prompt').find('em').text());

var diff = 0;

// 筛选出更改对象

var obj = fraction.filter(function(value) {

return value.userid === Number(id);

})[0];

// id对应的对象不存在

// if (!obj) {

// fraction.push({

// userid: id,

// mark: num

// })

// return;

// }

// obj.mark = num;

// id对应的对象不存在

if (!obj) {

fraction.push({

userid: id,

mark: num

})

diff = num; // 计算差值

} else {

// 对象存在,修改分数

obj.mark = num;

diff = obj.mark - num; // 计算差值

}

console.log("diff:"+diff)

var $markDom = $('.mark em');

// 刷新分数

$markDom.html(Number($markDom.html()) - diff);

console.log("$markDom.html:"+$markDom.html())

}, function() {

//取消操作

});

}

结果:

bVVIQP?w=906&h=399

想要的结果是打分之后,可打分数减去打分的分数,当更改打分的分数后,当前可打分数复原然后再减去更改的分数。

再次修改代码后:

//打分

function mark(e,id){

$.prompt("", "请输入您要打的分数", function(text) {

var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/

if (!re.test(text)) {

$.toptips('请输入数字!');

return false;

}

$(e).siblings('.prompt').html('已打'+''+text+''+'分');

// var num = text.replace(/[^0-9]/ig,""); //在字符串中提取数字

$(e).text('更改');

var num = Number($(e).siblings('.prompt').find('em').text());

var diff = 0;

// 筛选出更改对象

var obj = fraction.filter(function(value) {

return value.userid === Number(id);

})[0];

// id对应的对象不存在

// if (!obj) {

// fraction.push({

// userid: id,

// mark: num

// })

// return;

// }

// obj.mark = num;

// id对应的对象不存在

if (!obj) {

fraction.push({

userid: id,

mark: num

})

diff = num; // 计算差值

} else {

diff = num - obj.mark; // 计算差值

// 对象存在,修改分数

obj.mark = num;

}

console.log("diff:"+diff)

var $markDom = $('.mark em');

// 刷新分数

$markDom.html(Number($markDom.html()) - diff);

console.log("$markDom.html:"+$markDom.html());

}, function() {

//取消操作

});

}

结果:

bVVI9p?w=856&h=395

源生除了另一个问题:

当我打分输入等于或者超过12分的时候,就成这样了,当前可打分数是(总分*0.4)

bVVJh8?w=808&h=335

结果修改:

bVVKSs?w=882&h=327

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值