2012-04-08 2 views
0

Следующая дает мне ошибку неперехваченным SyntaxError: Неожиданное идентификатор:Как установить внутренний HTML из двускатной элемента с помощью JQuery

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

Как я могу исправить это?

+1

Посмотрите на подсветку синтаксиса, и вы должны быть в состоянии увидеть проблему. .. –

ответ

5

Это не лучший способ использования jQuery ... атрибуты onclick не рекомендуются. вот альтернатива

//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 изменил $ el.bind до $ el.on который является то, что используется в настоящее время

+0

Удивительно, что вы самые классные! – Beraki

+0

Это более чистое решение. Котировки внутри кавычек в кавычках, в точку где вам нужно сбежать от них, через некоторое время может стать довольно сложным. +1 – jmort253

9

Вы не избежать одинарные кавычки:

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

Вы также можете избавиться от первого $('span.xtro').html('');, вам не нужно это.

+1

+1 Хотя я бы рекомендовал, чтобы он создал элемент и приложил его. – Gary

+0

+1 Но почему бы не открывать и закрывать двойные кавычки и оставлять только одиночные кавычки? – Sam

+0

Это зависит от того, как он это делает, но я просто подумал, что я бы выделил проблему :) – BenOfTheNorth

Смежные вопросы