2013-06-01 113 views
-2

代碼似乎失敗if(var i = 1;){工作正常,如果if(var i = 1;){等等被刪除,只是item.text("Options for your number " + i +"th $Name");在那裏。Javascript代碼失敗

<script type='text/javascript'>//<![CDATA[ 

$('#Quantity').keyup(function() { 
    var textualValue = $(this).val(); 
    var numericValue = parseInt(textualValue, 10); 

    if (!isNaN(numericValue)) { 
     modifyDOMWithNumber(numericValue); 
    } else { 
     modifyDOMWithNumber(0); 
    } 
}); 

function modifyDOMWithNumber(number) { 
    var ul = $('ul#ListToAlter').empty(); 
    var item; 

    for (var i = 1; i <= number; i++) { 
     item = $("<li>"); 

     if(var i = 1;){ 
     item.text("Options for your 1st $Name"); 
     }elsif(var i = 2;){ 
     item.text("Options for your 2nd $Name"); 
     }elsif(var i = 3;){ 
     item.text("Options for your 3rd $Name"); 
     }else{ 
     item.text("Options for your number " + i +"th $Name"); 
     } 

     ul.append(item); 
    } 
} 
//]]></script> 

回答

1

刪除分號

if(var i = 1){ 

這始終是真實的

=是一個賦值運算符和==是比較運算符

而且ELSIF應該是否則,如果通知空間

應該是這樣的

for (var i = 1; i <= number; i++) { 
    item = $("<li>"); 

    if (i == 1) { 
     item.text("Options for your 1st $Name"); 
    } 
    else if(i == 2) { 
     item.text("Options for your 2nd $Name"); 
    } 
    else if(i == 3) { 
     item.text("Options for your 3rd $Name"); 
    } else { 
     item.text("Options for your number " + i + "th $Name"); 
    } 

    ul.append(item); 
} 
+0

'elsif'是什麼意思...? – Doorknob

+0

我認爲他的意思是「其他如果」。 –

+0

錯誤來自問題海報代碼。 Sushanth複製了它。 – Jerry

1

比較正確的方法是if (i == 1) { /* do stuff */ }。 當使用單個「=」符號時,您正在爲變量賦值,而不是比較其值。

if (i == 1) { /* do stuff */ } 
else if (i == 2) { /* do some other stuff */ } 
else { /* if none of the above work */ } 
1

以及從變換

if (var i = 1;)

if (i == 1)

首先是不正確的語法

所有(i = 1)的第二給出的值,以賦值運算符

== - - 等於

=== - i1

=簡化版,測試正好等於(值和類型)

1

var i = 1;是賦值運算符(反正也不應該有分號)。你想要的是if (i==1){等等其他數字。嘗試改變它,讓我知道如果你需要更多的幫助:)

當評估相同的變量對不同的值,你可以替代地使用switch statement。所以,你可以按如下方式重寫代碼:

switch(i) 
{ 
    case 1: 
    { 
     item.text("Options for your 1st $Name"); 
     break; 
    } 
    case 2: 
    { 
     item.text("Options for your 2nd $Name"); 
     break; 
    } 
    case 3: 
    { 
     item.text("Options for your 3rd $Name"); 
     break; 
    } 
    default: 
    { 
     item.text("Options for your number " + i +"th $Name"); 
    } 
} 
0

應該

if (var i==1) 

,而不是I = 1爲你的情況。

您需要比較的值,並要求至少2 =標誌