2013-05-01 79 views
0

我剛剛寫了一個小的if,else if循環,並在控制檯中出現一個unexpected token ';'錯誤。如果我在每個$(this).css('top', top-3"em");聲明後刪除;,我會得到另一個錯誤,說明else if之前的}是意外!如果,否則如果循環中斷

這是我的循環,任何想法,我可能會誤入歧途?

$('div.result').each(function() { 

    $(this).css('top', top+"em"); 
    top = top + 8; 

    resultcount = resultcount - 1; 

    if(resultcount=5) { 
     $(this).css('top', top-3"em"); 
    } else if(resultcount=4) { 
     $(this).css('top', top-7"em"); 
    } else if(resultcount=3) { 
     $(this).css('top', top-14"em"); 
    } else if(resultcount=2) { 
     $(this).css('top', top-20"em"); 
    } else(resultcount=1) { 
     $(this).css('top', top-30"em"); 
    } 

}); 
+0

有一堆語法錯誤,從無效比較到沒有字符串集中。 – adeneo 2013-05-01 14:33:11

+0

@Borsel你也是一個點擊一個名爲** If的鏈接,否則如果循環中斷**;) – 2013-05-01 14:38:42

回答

1

您的語法錯誤很少,可能需要在更多位置進行更正。

  • 您需要使用運營商的平等,而不是===賦值運算符=

  • 你錯過了,如果在最後的if語句。

  • 你必須使用+連接字符串top-3"em"(top-3)+"em"

這是語法錯誤免費

Live Demo

$('div.result').each(function() { 

    $(this).css('top', top+"em"); 
    top = top + 8; 

    resultcount = resultcount - 1; 

    if(resultcount===5) { 
     $(this).css('top', (top-3)+"em"); 
    } else if(resultcount===4) { 
     $(this).css('top', (top-7)+"em"); 
    } else if(resultcount===3) { 
     $(this).css('top', (top-14)+"em"); 
    } else if(resultcount===2) { 
     $(this).css('top', (top-20)+"em"); 
    } else if(resultcount===1) { 
     $(this).css('top', top-30+"em"); 
    }  
}); 
+0

請推薦使用'==='並假裝'=='不存在。 – jbabey 2013-05-01 14:33:27

+0

@jbabey我不同意你關於「*假裝==不存在*」,但好吧... – 2013-05-01 14:34:36

+1

@jbabey如果你只是將其添加到每個JavaScript的答案,你不會讓很多朋友。使用'=== 0''代替'== 0'有很好的理由,但使用'=== 5'代替'== 5'的代碼並不多。 – Blazemonger 2013-05-01 14:37:42

3

您正在設置VAR RESULTCOUNT,你是不是檢查它:檢查結果和類型

if(resultcount===5) { 
    $(this).css('top', "top-3em"); 
} 
else if(resultcount===4) { 
    $(this).css('top', "top-7em"); 
} 
else if(resultcount===3) { 
    $(this).css('top', "top-14em"); 
} 
else if(resultcount===2) { 
    $(this).css('top', top-20"em"); 
} 
else { 
    $(this).css('top', "top-30em"); 
} 

使用===

還有很多語法錯誤,請嘗試使用開發人員工具調試它們。

+1

請推薦使用'==='並假裝'=='不存在。 – jbabey 2013-05-01 14:32:32

+2

您是否嘗試過自己運行該代碼? – Blazemonger 2013-05-01 14:34:10

+0

完整的語法錯誤呢? – adeneo 2013-05-01 14:35:26

2

試試這個 您應該使用= = instea d of =如果你忘了在每個css參數中加上+。

$('div.result').each(function() { 

     $(this).css('top', top + " em"); 
     top = top + 8; 

     resultcount = resultcount - 1; 

     if(resultcount ==5) { 
      $(this).css('top', top-3 + "em"); 
     } else if(resultcount==4) { 
      $(this).css('top', top-7 + "em"); 
     } else if(resultcount==3) { 
      $(this).css('top', top-14 + "em"); 
     } else if(resultcount==2) { 
      $(this).css('top', top-20 + "em"); 
     } 

    }); 
+0

'else(resultcount == 1)'應該是'else if' – Blazemonger 2013-05-01 14:35:57

+0

吶喊!工程(包括最後的'else if'而不是'else'謝謝你們! – lukeseager 2013-05-01 14:37:12

相關問題