尝试使用jquery追加时,我总是收到此错误。
Uncaught SyntaxError: missing ) after argument list
这是我的代码:
$(".grid-uniform").append('<input type="checkbox" id="addToCompare-'+prod.id+'" class="addToCompare" onclick="addProductToCompare('+prod.id+','+prod.json.variants[0].id+','+prod.title+')">');
以下是传入的值:
addProductToCompare(1557908979773,13234446893117,Apple iPhone X - Zizo ION Triple Layered Hybrid Rugged Case with Tempered Glass, Smoke/Clear)
看起来字符串中的“ with”已被JavaScript识别。它应该只是一个字符串。当我检查typeof时,它返回字符串。如果我将prod.price替换为prod.title并保持其他所有条件不变,则效果很好。
答案 0 :(得分:1)
这是因为您没有将第三个参数设置为字符串文字,而是用引号分隔。
$(".grid-uniform").append(
'<input type="checkbox" id="addToCompare-'+prod.id+'" class="addToCompare" ' +
'onclick="addProductToCompare('+prod.id+','+prod.json.variants[0].id+',\''+prod.title+'\')">'
);
请注意在最后一个参数周围添加的\'
。
更好的方法:
$(".grid-uniform").append(
$('<input>').attr({type: "checkbox", id: "addToCompare-"+prod.id})
.addClass("addToCompare")
.click(function () {
addProductToCompare(prod.id, prod.json.variants[0].id, prod.title);
})
);