我正在操作$ .ajax函数中的jSON数组,我对它的语法感到困惑。有一个错误,无法找到它。
if(value['newVar'] === 1)
{
$productContainer.append("<div id='productBox' class='grid_3'>\n\
<a href='product.jsp?id="+value['id']+"'><img src='"+value["image"]+"'/></a><br/>\n\
<a href='product.jsp?id="+value['id']+"'><span class='black'>"+value['name']+"</span></a><br/>\n\
<span class='black'>By "+value['company']+"</span><br/><span class='red'>RS."+value['price']+"</span>\n\
<br/><br/><a href='#' onclick="foo(this)" pid="+value['id']+">REMOVE</a></div>");
}
错误发生在if块和RS."+value['price']+"</span>\n\
之后的第4行,它表示缺少语句Uncaught SyntaxError: missing ) after argument list
。我认为错误与我写的onclick="foo(this)"
任何帮助?
答案 0 :(得分:1)
用单引号替换双引号。您正在使用双引号终止字符串并创建语法错误:
...<a href='#' onclick='foo(this)' pid='"+value['id']+"'>
答案 1 :(得分:0)
错误是由于最后一行引用误用:onclick="foo(this)"
你还有两个单引号丢失...
(在某个地方的字符串内...不会导致实际错误,但您之后会在生成的HTML中出现一些错误。)
您可以使用您选择的引号作为字符串包装来追加...
另一个用于字符串内部。
但是你必须注意不要“混合”它们! 一个是字符串包装器,另一个是字符串的一部分。
if(value['newVar'] === 1){
$productContainer.append("<div id='productBox' class='grid_3'>\n"+
"<a href='product.jsp?id='" +value['id']+ "'><img src='" +value["image"]+ "'/></a><br/>\n"+
"<a href='product.jsp?id='" +value['id']+ "'><span class='black'>" +value['name']+ "</span></a><br/>\n"+
"<span class='black'>By " +value['company']+ "</span><br/><span class='red'>RS." +value['price']+ "</span>\n"+
"<br/><br/><a href='#' onclick='foo(this)' pid=" +value['id']+ ">REMOVE</a></div>");
}
<强>技巧:强>
+
符号连接您的行
它可以防止在字符串中包含多个制表符和空格
这是比每行末尾的跟踪斜杠\
更好的做法。