2012-04-08 3 views
0

Die folgende mir den Fehler Uncaught Syntax gibt: Unerwartete Kennung:Wie innere HTML eines span-Element setzen jQuery

$('span.xtro').html(''); 
$('span.xtro').html('<input type='button' class='newbutton send' value='Send request' onclick= 
         "javascript:request('send','1','2');'>'); 

Wie kann ich das korrigieren?

+1

einen Blick auf die Syntax-Hervorhebung Haben verwendet wird, ist, und Sie sollten das Problem sehen können. .. –

Antwort

5

Es ist nicht die beste Art, jQuery zu verwenden ... onclick-Attribute werden nicht empfohlen. hier ist eine Alternative

//note wrapping with double quotes and using single ones inside 
var $el = $("<input type='button' class='newbutton send' value='Send request'>"); 
$el.on('click', function(){ request('send','1','2'); }); 
$('span.xtro').html('').append($el); 

EDIT geändert el.on $ el.bind auf $, die, was heutzutage

+0

Erstaunlich, du bist der beste coole! – Beraki

+0

Dies ist die sauberere Lösung. Die Zitate in Anführungszeichen in Anführungszeichen, auf den Punkt wo du ihnen entkommen musst, kann nach einiger Zeit ziemlich kompliziert werden – jmort253

9

Sie sind nicht die einfachen Anführungszeichen zu entkommen:

$('span.xtro').html('<input type="button" class="newbutton send" value="Send request"' 
        + ' onclick="request(\'send\',\'1\',\'2\');">'); 

Sie können auch von der ersten $('span.xtro').html(''); loszuwerden, sollten Sie es nicht brauchen.

+1

+1 Obwohl ich empfehlen würde er/sie das Element erstellen und es stattdessen anhängen. – Gary

+0

+1 Aber, warum nicht öffnen und schließen mit Anführungszeichen und lassen Sie die ursprünglichen einfachen Anführungszeichen allein? – Sam

+0

Es liegt an ihm, um welchen Weg er es tut, aber ich dachte nur, ich würde das Problem hervorheben :) – BenOfTheNorth

Verwandte Themen