2017-03-24 8 views
0

これは重複しているように見えるかもしれませんが、私の場合は少し異なります。 は、私は、次のコードを持っている:SyntaxError:missing)jsonレスポンスを使用したjavascript関数の引数リストの後に

function stateList() {    
     function parseStateList(response){ 
     var stateTable= "<table><tr><td style='width: 500px; color: blue;'>Folder name (state)</td></tr>"; 
     console.log(response); 
     statelist=response["States"]; 
     console.log(statelist); 
     for (var i in statelist) { 
      a = statelist[i]; 
      var index = Object.keys(statelist).indexOf(i) 
      console.log("i="+index); 
      console.log(statelist[i]); 
      stateTable+="<tr><td style='width: 500px;'><button id=\""+index+"\" onclick=\"GetSavedState("+a+",parseSavedState)\">" + a + "</button></td></tr>"; 
      //document.getElementById(index).onclick = function(){GetSavedState(a,parseSavedState);}; 
     } 
     stateTable+="</table>"; 
     document.getElementById('state_output').innerHTML = stateTable; 
     } 

     GetStateList(parseStateList); 
    } 

そして、私はこのエラーにSyntaxError取得しています:欠落している)引数リスト

+3

あなたには 'GetStateList'の定義も含まれています。また、 'indexOf(i)'の後にセミコロンを置くべきです。最終的な縮れが適切でないことを確認するためにコードを元に戻してみます。 – amenadiel

+0

@amenadiel、thxレスポンスでは、GetStateListはfunctions.jsで定義されており、doRequest(params)とparamsを1つだけ実行します。 doRequestは、クライアントからサーバーへのコマンドを処理するはずの全く異なる関数です。 –

答えて

2

エラーは、あなたの質問に置かれているコードではないの後に。私はダミーのGetStateList関数を作成し、スニペットはうまく動作します。これは、たとえばGetStateListから得られる応答の構造にあるエラーを指します。

PD:GetSavedStateの最初のパラメータを変数として渡していたので、これを自由に取りましたが、aは文字列です。

function GetStateList(callback) { 
 
    callback(
 
    { 
 
    "States":{ 
 
     "CA":"California", 
 
     "FL":"Florida" 
 
    } 
 
    }); 
 
} 
 
function GetSavedState(stateusps, callback) { 
 
    callback(stateusps); 
 
} 
 
function parseSavedState(savedState) { 
 
    console.log(savedState); 
 
} 
 

 
function stateList() { 
 
    function parseStateList(response) { 
 
     var stateTable = "<table><tr><td style='width: 500px; color: blue;'>Folder name (state)</td></tr>"; 
 
     console.log(response); 
 
     statelist = response["States"]; 
 
     console.log(statelist); 
 

 
     for (var i in statelist) { 
 
      a = statelist[i]; 
 
      var index = Object.keys(statelist).indexOf(i) 
 
      console.log("i=" + index); 
 
      console.log(statelist[i]); 
 
      stateTable += "<tr><td style='width: 500px;'>"; 
 
      stateTable += "<button id=\"" + index + "\" onclick=\"GetSavedState('" + a + "',parseSavedState)\">" + a + "</button>"; 
 
      stateTable += "</td></tr>"; 
 
     } 
 

 
     stateTable += "</table>"; 
 
     document.getElementById('state_output').innerHTML = stateTable; 
 
    } 
 

 
    GetStateList(parseStateList); 
 
} 
 

 
stateList();
<div id="state_output"></div>

これはあなたのエラーに応答しない、それはあなたがそれだと思うところそうではないだけのデモです。

+0

驚くばかり! Thx、これは実際に動作するようです。私はあまりにもJava指向の人だ...私の意見では、変数になるはずですが、大丈夫、私はなぜそれが文字列だと思う –

関連する問題