码迷,mamicode.com
首页 > Web开发 > 详细

js并列排名之div图片加载

时间:2019-01-18 21:23:34      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:9.png   相同   加载   存储   问题   投票   list   nbsp   new   

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

当投票数相同后,比如最多的都是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];
}
}

}

js并列排名之div图片加载

标签:9.png   相同   加载   存储   问题   投票   list   nbsp   new   

原文地址:https://www.cnblogs.com/xz-404/p/10289573.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!