簡體   English   中英

用javascript字符串附加html

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM