繁体   English   中英

jQuery.ajax函数中的html语法错误?

[英]html syntax error in jQuery.ajax funciton?

我在$ .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\\后的第四行RS."+value['price']+"</span>\\n\\它表示Uncaught SyntaxError: missing ) after argument list缺少语句Uncaught SyntaxError: missing ) after argument list 我认为错误是我写onclick="foo(this)"

有什么帮助吗?

用双引号替换双引号。 您用双引号终止字符串并创建语法错误:

   ...<a href='#' onclick='foo(this)' pid='"+value['id']+"'>

该错误是由于最后一行的引号滥用: 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>");

}

技巧:

  • +号连接您的行。
    它可以防止在字符串中包含多个制表符和空格。
    比起每行末尾的斜杠\\ ,这是一种更好的做法。
  • 像我上面所做的那样,使变量在视觉上更加明显,以便能够更好地查看它们。
    它还有助于检查报价是否丢失或误用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM