SyntaxError: missing ) after argument list in javascript function with json response

SyntaxError: missing ) after argument list in javascript function with json response

这似乎是重复的,但在我的情况下有点不同。 我有以下代码:

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: missing )

错误不在您在问题中输入的代码中。我制作了一个虚拟 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>

这并没有回答您的错误,它只是证明它不是您认为的位置。