2013-01-15 92 views
0

我在PHP中使用接觸這樣語法錯誤:缺少;聲明之前,而concate在JavaScript中環路

$location_space  = ''; 
$location_formation = ''; 

foreach($location as $formation) { 
    $location_formation .= $formation.', '; 
    $location_space  .= $formation.'<br />'; 
} 

當我想改變它爲JavaScript:

var location_space  = ''; 
var location_formation = ''; 

for (i = 0; i < new_location.length; i++) { 
    var location_space  += new_location[i] + ', '; 
    var location_formation += new_location[i] + '<br />'; 
} 

這表明我這個錯誤

Error: SyntaxError: missing ; before statement
Line: 311, Column: 32
Source Code: var location_space += new_location[i] + ', ';

那又怎麼了?

+1

刪除for循環中的'var' - 變量已在循環外聲明 –

+2

只是爲了澄清一些答案:問題不在於定義本身,而是定義與* shorthand * concatenation相結合這個錯誤。 'var location_space = location_space + new_location [i] +',';'會工作得很好(但當然沒有理由再次使用'var')。 –

+0

沒有進一步的解釋,誰會降低所有正確的答案? –

回答

1

您已經定義location_spacelocation_formation,所以你只需要分配值給他們,而不是重新聲明他們for()循環中:

var location_space  = ''; 
var location_formation = ''; 

for (var i = 0; i < new_location.length; i++) 
{ 
    location_space  += new_location[i] + ', '; 
    location_formation += new_location[i] + '<br />'; 
} 
0

您已經在for循環之前聲明瞭變量,因此如果您從循環中刪除var s,則應該使用字符串連接。

+0

您不能將字符串添加到同一行中的字符串聲明中... – chrisbradbury

0

您不應該再次定義location_spacelocation_formation
你的代碼改成這樣:

var location_space  = ''; 
var location_formation = ''; 
for(var i = 0; i < new_location.length; i++) 
{ 
    location_space  += new_location[i] + ', '; 
    location_formation += new_location[i] + '<br />'; 
} 
0

變化它:

for (i = 0; i < new_location.length; i++) { 
    location_space  += new_location[i] + ', '; 
    location_formation += new_location[i] + '<br />'; 
} 

,並嘗試

0

嘗試用替換:

var location_space  = ''; 
var location_formation = ''; 

for(i=0; i<new_location.length; i++) { 
    location_space  += new_location[i] + ', '; 
    location_formation += new_location[i] + '<br />'; 
} 

你試圖再次聲明location_space和location_formation並使用它就像是「+ =」之前聲明。

相關問題