为什么我得到Uncaught SyntaxError:意外的令牌}:
btn = '<td class="sentBut"><button type="button" class="btn btn-info" onClick="sentMail("'+tr[0]+'","'+tr[1]+'","'+tr[2]+'")">הזמן/י</button></td>';
这里有什么问题:
"'+tr[0]+'","'+tr[1]+'","'+tr[2]+'"
删除它时,它会起作用。
感谢。
答案 0 :(得分:3)
问题是您在html标记内使用单引号和双引号。 html为这些赋予了特定的含义。例如,它可能正在读取onClick元素:
onClick="sentMail("
因为您的双引号会关闭开头报价。修复如下:
btn = '<td class="sentBut"><button type="button" class="btn btn-info" onClick="sentMail("'+tr[0]+'","'+tr[1]+'","'+tr[2]+'")">הזמן/י</button></td>';
我知道这看起来有点疯狂,但那些都是html实体。
'
代表'
"
代表"
您可以找到所有实体here。
答案 1 :(得分:0)
您可以使用以下方法。这将减少您的格式问题。
var DataReplacement = function ()
{
var s = arguments[0];
for (var i = 0; i < arguments.length - 1; i++)
{
var reg = new RegExp("\\{" + i + "\\}", "gm");
s = s.replace(reg, arguments[i + 1]);
}
return s;
}
使用以下功能
var func = DataReplacement("sendEmail('{0}', '{1}', '{2}')", tr[0], tr[1], tr[2]);
btn = '<td class="sentBut"> \
<button type="button" class="btn btn-info" \
onClick="' + func + '"> yourText \
</button> \
</td>';