2011-12-29 4 views
0

場合:ajaxt奇妙なエラー:キャッチされないでSyntaxError:予期しないトークン私はこのJavaScriptを持っている

function updatePage() { 
if (request.readyState == 4) 
    if (request.status == 200) 
     var data = JSON.parse(request.responseText); 
     update_select($('select[name=island_name]'), data); 
    else if (request.status == 404) 
     alert("Request url does not exist"); 
    else 
     alert("Error: status code is " + request.status); 
} 

しかし、私は私のスクリプトを停止Uncaught SyntaxError: Unexpected token ifエラーを取得しておきます。何か案は?

+0

これはpythonではなく、字下げはブロックを定義しません。 '{'と '}'を使って 'if'をグループ化してください – davin

+1

あなたは"予期しないトークン 'else'"を意味していますか? –

+0

@JuicyScripterいいえ、オープニング 'if()'に中括弧がないので、最初に見つかった 'else'は、OPが意図したものではなく、それに関連付けられていると見なされるからです。括弧は命を救う! –

答えて

1

を。これらのブロックのほとんどには中カッコが厳密には必要ではありませんが、最初のif()に2つのステートメントを実行しようとしているので、それらを必要とします。どこにでも置けるベスト。

function updatePage() { 
    if (request.readyState == 4) { 
    if (request.status == 200) { 
     var data = JSON.parse(request.responseText); 
     // Second statement executed after the if() 
     // MUST use {} on this block 
     update_select($('select[name=island_name]'), data); 
    } 
    else if (request.status == 404) { 
     alert("Request url does not exist"); 
    } 
    else { 
     alert("Error: status code is " + request.status); 
    } 
    } 
} 
+0

+1最高のアドバイス:どこにでもそれらを使用してください、それは少し目障りに見えるが、むしろ混乱より。 – davin

1
function updatePage() { 
if (request.readyState == 4) 
    if (request.status == 200) 
    { 
     var data = JSON.parse(request.responseText); 
     update_select($('select[name=island_name]'), data); 
    } 
    else if (request.status == 404) 
     alert("Request url does not exist"); 
    else 
     alert("Error: status code is " + request.status); 
} 

あなたインデントライン5(update_select...)が、それはifには本当にありませんでした。

+0

2行目に中括弧がありません。 – Jules

+1

@Julesいいえ、必要ありません。 – baruch

+1

@Jules構文上正しいことが本当に必要な唯一のものは、既にその場所にあります。ここには何も間違っていません... –

1

あなたは、ライン2と3で中括弧{不足している:あなたは括弧の束を逃している、とupdate_select()ライン上で、それが問題を引き起こしている

function updatePage() { 
    if (request.readyState == 4) { 
     if (request.status == 200) { 
      var data = JSON.parse(request.responseText); 
      update_select($('select[name=island_name]'), data); 
     } 
     else if (request.status == 404) 
     alert("Request url does not exist"); 
     else 
     alert("Error: status code is " + request.status); 
    } 
} 
+0

追加した中括弧の最初のセットは厳密には必要ではありません。 – baruch

+2

@baruch:厳密には必要ではないが、downvoteを定義していない。厳密に必要なカッコでは読みやすさが向上し、この場合Darwin Techのような問題は回避されます。 – Jules

+0

私はdownvoteに値するしないことに同意している間、あなたはここで少し矛盾している。読みやすさを追加して、どこにでも追加しないと言います。そのルールはやや恣意的であり、不一致は私の好みに紛らわしいものです。 – davin

関連する問題