Uncaught SyntaxError:意外的标识符

时间:2014-11-14 17:33:11

标签: javascript php html

我正在处理一个简单的函数,我有一个行表,每行都有一个editButton。在编辑按钮的onclick中,我调用了波纹管功能并得到错误:

Uncaught SyntaxError: Unexpected identifier 

它指向php文件的第1行,它只有doctype声明(当我首先加载页面时似乎没问题 - 只有在我点击编辑按钮时才会出现错误)。功能如下:

function editGUI(rowNum, carerName, carerAddress, carerMobile, carerID){
        row=document.getElementById('Row'+rowNum);
        row.innerHTML= '<tr id="Row' + i + '">\
                    <td><input type="text" value="' + carerName + '"></td>\
                    <td><input type="text" value="' + carerAddress + '"></td>\
                    <td><input type="text" value="' + carerMobile + '"></td>\
                    <td>  HISTORY  </td>\
                    <td><button onClick="editCarer('+carerID+');">EDIT</button></td>\
                    </tr>';
    };

初始html动态附加javascrript并在屏幕上正确显示:

for (var i = 0; i < JSON_csw.length; i++)
    {
        table += '<tr id=Row'+ i +'>\
                   <td>' + JSON_csw[i].carerName + '</td>\
                   <td>' + JSON_csw[i].carerAddress + '</td>\
                   <td>' + JSON_csw[i].carerMobile + '</td>\
                   <td>  HISTORY  </td>\
                   <td><button id=btn[' + i + '] \
                   onClick="editGUI('+ i +','+JSON_csw[i].carerName+','+JSON_csw[i].carerAddress+', '+JSON_csw[i].carerMobile+', '+JSON_csw[i].carerID+');">\
                   EDIT</button></td>\
                  </tr>';
    }

Doctype声明;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

任何帮助表示感谢,我无法发现错误

2 个答案:

答案 0 :(得分:1)

我认为你的问题是由于这条线引起的:

onClick="editGUI('+ i +','+JSON_csw[i].carerName+','+JSON_csw[i].carerAddress+', '+JSON_csw[i].carerMobile+', '+JSON_csw[i].carerID+');">\

当您在点击处理程序中向editGUI函数发送参数时,您没有引号来表示字符串。对于JSON_csw中的示例元素,这是该行附加到html的方式:

onClick="editGUI(1,test_name,test_address,test_mobile, 5)"

您应该将字符串括在引号中,例如:

onClick="editGUI('+ i +',\''+JSON_csw[i].carerName+'\',\''+JSON_csw[i].carerAddress+'\', \''+JSON_csw[i].carerMobile+'\', '+JSON_csw[i].carerID+');">\

我认为它会正常工作。我还没有尝试过上面的代码,使用Inspect Element来查看如何在DOM中实际显示onClick处理程序。然后使用适当的转义,你应该好好去。

答案 1 :(得分:0)

除非carerID是数字,否则必须引用它。类似的东西:

 row.innerHTML= '<tr id="Row' + i + '">\
                    <td><input type="text" value="' + carerName + '"></td>\
                    <td><input type="text" value="' + carerAddress + '"></td>\
                    <td><input type="text" value="' + carerMobile + '"></td>\
                    <td>  HISTORY  </td>\
                    <td><button onClick="editCarer(\\"'+carerID+'\\");">EDIT</button></td>\
                    </tr>';

注意:我没试过这段代码。你可能不得不玩弄逃避报价。