[英]Append html with javascript string
我試圖用JavaScript字符串附加html,但是單引號有一些麻煩。
到目前為止,附加元素的工作原理是:
$("<a class='action-button' id='pl65197buy' value='buy now'>Bekijk aanbieding</a>").prependTo("div#centerplist");
但是,當我嘗試添加onclick函數時,它將無法正常工作-我是否需要以某種方式轉義引號?
onclick="buy(this, 65197, null, 'pl65197qty",null, '/ajax/buy'
顯然這是錯誤的,但是在控制台中我得到的是最接近的沒有錯誤:
$("<a class='action-button' id='pl65197buy' value='buy now' onclick='buy(this, 65197, null, 'pl65197qty',null, '/ajax/buy'>Bekijk aanbieding</a>").prependTo("div#centerplist");
您需要使用\\
字符對引號進行轉義。 嘗試這個
$("<a class='action-button' id='pl65197buy' value='buy now' onclick=\"buy(this, 65197, null, 'pl65197qty',null, '/ajax/buy')\">Bekijk aanbieding</a>").prependTo("div#centerplist");
我建議您在JavaScript中使用事件處理程序,這是一種稍微不同的方法。 這樣,既易於閱讀又易於維護。
$("<a class='action-button' data-id='165197' id='pl65197buy' value='buy now' >Bekijk aanbieding</a>").prependTo("div#centerplist");
$(document).on("click",".action-button",function() {
// your buy() function
// $(this) contains your pressed button information
buy($(this)[0], $(this).data('id'), null, 'p' + $(this).data('id') + 'qty', null, '/ajax/buy')
});
例如,您可以使用$(this).data('id')
訪問data-id
屬性。
編輯:我已經包括了您的購買函數,雖然p + id + qty是否通用,但我不是,盡管我認為您大致了解它的工作方式。
$("<a class='action-button' id='pl65197buy' value='buy now' onclick=\"buy(this, 65197, null, 'pl65197qty',null, '/ajax/buy')\">Bekijk aanbieding</a>").prependTo("div#centerplist");
嘗試這個
嘗試這個。
<html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <body> <div id="centerplist"> </div> <script> $(document).ready(function() { $("#centerplist").prepend("<a class='action-button' id='pl65197buy' value='buy now' onclick='buy(this, 65197, null,\\"pl65197qty\\",null, \\"/ajax/buy\\")'>Bekijk aanbieding</a>"); }); function buy(p1,p2,p3,p4,p5,p6) { alert(p2); } </script> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.