2014-09-05 4 views
2

Долгое время lurker, первый раз спрашивает.

Мне интересно, если есть так, чтобы innerHTML/jquery .html не конвертировал экранированные символы.

Более конкретно ... Я пытаюсь сделать следующее:

$("#myid").html('<a href="javascript:;" onclick="myfunction(\''+a_lot_of_text+'\');" </a>') 

Теперь a_lot_of_text может сбежавших кавычки, двойные кавычки, и тому подобное ... Однако, $ .html преобразует &quot; в " который, конечно же, завинчивает код. Есть ли «разумный» способ вставить точную строку, которую я передаю в идентификатор?

+1

JQuery + OnClick атрибут = вы делаете это неправильно – zzzzBov

+0

a_lot_of_text бы, например, чей-то био, который может включать в себя»,» или все виды других символов Для тех комментариев. на jQuery + onClick неверно и т. д. Идентификатор не существует, когда страница сначала создается (или может отсутствовать), поэтому я использую onclick. – JoshSway

ответ

0

Да. Вместо этого вы можете использовать innerText или jQuery's text().

$('elem').text('&quot;'); 

JSFiddle demo.

Также, поскольку вы используете jQuery, нет необходимости использовать встроенный JavaScript. Заменить onclick обработчик с JQuery:

$('#myid').on('click', function() { 
    // ... 
}); 
+0

Я не думаю, что это сработает по нескольким причинам. (1) текст будет удаляться из всего другого кода, который я вставляю (который мне не нужно вставлять). 92) использование обработчика onclick не будет работать, потому что в моем случае идентификатор динамически генерируется. – JoshSway

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