javascript
  • jquery
  • html
  • 2016-09-21 5 views 1 likes 
    1

    Ich versuche, HTML mit einer JavaScript-Zeichenfolge anhängen, aber einige Probleme mit den einzelnen Anführungszeichen.HTML mit JavaScript-String anhängen

    Anfügen das Element funktioniert so weit:

    $("<a class='action-button' id='pl65197buy' value='buy now'>Bekijk aanbieding</a>").prependTo("div#centerplist"); 
    

    Aber wenn ich versuche, eine Onclick Funktion es wird nicht funktionieren hinzufügen - muss ich irgendwie die Anführungszeichen entkommen müssen?

    onclick="buy(this, 65197, null, 'pl65197qty",null, '/ajax/buy' 
    

    Dies ist offensichtlich falsch, aber sein engster i in der Konsole ohne einen Fehler erhalten:

    $("<a class='action-button' id='pl65197buy' value='buy now' onclick='buy(this, 65197, null, 'pl65197qty',null, '/ajax/buy'>Bekijk aanbieding</a>").prependTo("div#centerplist"); 
    
    +0

    Warum das Onclick und nicht ein Event-Handler in Ihrem JavaScript-Code? –

    Antwort

    1

    Sie müssen Ihre Angebote mit dem \ Charakter entkommen. Versuchen Sie, diese

    $("<a class='action-button' id='pl65197buy' value='buy now' onclick=\"buy(this, 65197, null, 'pl65197qty',null, '/ajax/buy')\">Bekijk aanbieding</a>").prependTo("div#centerplist"); 
    
    +0

    Wirklich? Nur um ein "Ja" zu entfernen? –

    0
    $("<a class='action-button' id='pl65197buy' value='buy now' onclick=\"buy(this, 65197, null, 'pl65197qty',null, '/ajax/buy')\">Bekijk aanbieding</a>").prependTo("div#centerplist"); 
    

    Versuchen Sie, diese

    1

    ich einen etwas anderen Ansatz mit einem Event-Handler in Ihrem Javascript vorschlagen würde. Auf diese Weise ist es einfacher zu lesen und zu warten.

    $("<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') 
    }); 
    

    Sie sind in der Lage, das data-id Attribut mit $(this).data('id') zum Beispiel zuzugreifen.

    EDIT: Ich habe Ihre Kauffunktion enthalten, ich war nicht, wenn p + id + qty generisch ist oder nicht, obwohl ich denke, Sie bekommen, wie es im Allgemeinen funktioniert.

    +0

    Hmm das ist interessant. unsicher, wie man die Funktion schreiben, obwohl – Xeptor

    +0

    meine Antwort bearbeitet. Ist es jetzt klarer, wie ich die Funktion in den Event-Handler schreiben würde? –

    0

    Versuchen Sie es.

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

    Verwandte Themen