今天遇到的問題基於上一次的代碼:url
當投票數相同後,好比最多的都是38票,有三人,此時,改爲39時,排名依然是三個第一名對象
錯誤代碼圖片
if(j<countList.length){
if(countList[j].text===countList[j+1].text){
num[j+1].style.backgroundImage=num[j].style.backgroundImage;
}
}List
這裏僅僅是對相鄰兩個票數做比較,且因爲num[j].style.backgroundImage;是動態得到的,也就是要更改的圖片並不在num中存放,再怎麼賦新值也是基於當前狀況,所以個人解決辦法是先存儲圖片im
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')";img
這時賦值就是相對初始狀況了。co
同時,再也不是兩兩比較,而是當前對象與以後的全部對象比較,雖然會出現重複賦值的狀況,但能夠避免後面出現票數相同,但名次卻不一樣的狀況background
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];
}
}
} 錯誤