2017-03-24 29 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); 
    } 

而且我得到这个错误语法错误:缺少)后的参数列表

+3

你应该还包括'GetStateList'的定义。另外,在indexOf(i)'后应该有一个分号。我会尝试重新加入你的代码,以确保最终的卷曲不是不合适的。 – amenadiel

+0

@amenadiel,thx for response,GetStateList在functions.js中定义,它只执行一件事情 - 带参数的doRequest(params)。 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为导向的人...在我看来,a应该是一个变量,但是好的,我想我明白为什么它是一个字符串 –

相关问题