js并列排名之div图片加载

今天遇到的问题基于上一次的代码:

当投票数相同后,比如最多的都是38票,有三人,此时,改成39时,排名依然是三个第一名

错误代码

if(j<countList.length){
if(countList[j].text===countList[j+1].text){
num[j+1].style.backgroundImage=num[j].style.backgroundImage;
}
}

这里仅仅是对相邻两个票数作比较,且由于num[j].style.backgroundImage;是动态获得的,也就是要更改的图片并不在num中存放,再怎么赋新值也是基于当前情况,因此我的解决办法是先存储图片

var numImg = new Array();
numImg[0]="url('/voteonline/img/num/1.png')";
numImg[1]="url('/voteonline/img/num/2.png')";
numImg[2]="url('/voteonline/img/num/3.png')";
numImg[3]="url('/voteonline/img/num/4.png')";
numImg[4]="url('/voteonline/img/num/5.png')";
numImg[5]="url('/voteonline/img/num/6.png')";
numImg[6]="url('/voteonline/img/num/7.png')";
numImg[7]="url('/voteonline/img/num/8.png')";
numImg[8]="url('/voteonline/img/num/9.png')";
numImg[9]="url('/voteonline/img/num/10.png')";

 

这时赋值就是相对初始情况了。

同时,不再是两两比较,而是当前对象与之后的所有对象比较,虽然会出现重复赋值的情况,但可以避免后面出现票数相同,但名次却不同的情况

for (var j = 0; j < countList.length; j++) {
count[j].innerHTML = countList[j].text;
for(var k=j+1;k< countList.length; k++){
if(countList[j].text==countList[k].text){
num[k].style.backgroundImage=num[j].style.backgroundImage;
}else{
num[k].style.backgroundImage=numImg[k];
}
}

}

转载于:https://www.cnblogs.com/xz-404/p/10289573.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值