簡體   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