我有以下一行:
document.write('<td><input value="Add to ShopBakset"
type="button" onClick="addToBasket(\'' + JSON.stringify(products[i]) + '\')"/></td>');
和以下代码:
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="center">
<h1 align="center">Shop Basket</h2>
<script type="text/javascript" src="external.js"></script>
<table align="center">
<tr>
<th align="left">Price</th>
<th>Product</th>
<th></th>
</tr>
<script>
for(let i=0;i<products.length;i++){
for(let key in products[i]){
document.write("<tr>");
document.write("<td>" + key + "</td>");
document.write("<td>" + products[i][key] + "</td>");
document.write('<td><input value="Add to ShopBakset"
type="button" onClick="addToBasket(\'' + JSON.stringify(products[i]) + '\')"/></td>');
document.write("</tr>");
}
}
</script> // an error occurs here
</table>
<center>
<a href="html-link.htm"><img src="shopbasket.jpg" title="basket"
alt="basket"></a>
</center>
</div>
<p id="change"></p>
</body>
</html>
结束脚本标记行输出无效或意外的令牌。如果我省略JSON.stringify,则没有错误。我使用崇高的文字来创建我的应用程序。几天前,我遇到了此类错误的问题。这是由空白行引起的...
编辑: 进入3行:
document.write('<td><input value="Add to ShopBakset" type="button"'+
'onClick="addToBasket(\''
+ JSON.stringify(products[i]) +
'\')"/></td>');
答案 0 :(得分:1)
问题是您不能使用''
或""
多行字符串。您应该使用'
来关闭字符串。然后用新字符串添加+
。
document.write('<td><input value="Add to ShopBakset"'+
'type="button" onClick="addToBasket(\'' + JSON.stringify(products[i]) + '\')"/></td>');
更好的方法是使用Template Strings
document.write(`<td><input value="Add to ShopBakset"
type="button" onClick="addToBasket(${JSON.stringify(products[i])}')"/>
</td>`)