js并列排名之div图片加载
Posted 哎呀又又又又出错了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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];
}
}
}
以上是关于js并列排名之div图片加载的主要内容,如果未能解决你的问题,请参考以下文章