我正在处理一个简单的函数,我有一个行表,每行都有一个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">
任何帮助表示感谢,我无法发现错误
答案 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>';
注意:我没试过这段代码。你可能不得不玩弄逃避报价。