Да, в кавычках допускаются обе кавычки, но вы должны HTML-экранировать кавычку, которую вы используете в качестве разделителя значения атрибута, а также другие специальные HTML-символы, такие как <
и &
:
function encodeHTML(s) {
return s.split('&').join('&').split('<').join('<').split('"').join('"').split("'").join(''');
}
var html= '<label my_attr="'+encodeHTML(attr_value)+'">Text</label>';
Однако, как правило, вам гораздо лучше , а не , пытаясь взломать документ вместе из строк HTML.Вы рискуете ошибками и HTML-инъекцией (приводящими к дырам в безопасности межсайтовых сценариев) каждый раз, когда вы забудете сбежать.Вместо этого используйте методы в стиле DOM, такие как attr()
, text()
и ярлык конструкции:
$('body').append(
$('<label>', {my_attr: attr_value, text: 'Text'})
);