как я могу использовать jquery .append, чтобы добавлять только текст и не переводить в html - PullRequest
0 голосов
/ 29 февраля 2020

У меня есть фрагмент кода, который использует метод Jquery .append. Если вы помещаете какую-либо разметку в строку, которую нужно добавить, она обрабатывает разметку как допустимую, и вместо того, чтобы помещать ее как строку, она добавляет ее как html. как я могу остановить это?

пример.

var msg = "<script>alert()</script>"
$("div#messages").append("<br>"+msg);

это вызовет всплывающее окно с предупреждением, когда я хочу просто поставить <script>alert()</script> в div.

есть другой метод, который я должен использовать?

1 Ответ

0 голосов
/ 29 февраля 2020

Вы можете попробовать использовать селектор и функцию text:

$("div#messages").text('<script>alert()</script>');

При этом должен вставляться только текст, а не html.

Примечание. как упоминалось в комментариях, этот подход сотрет весь контент этого div.

Чтобы сохранить существующий контент, вы можете добавить к существующему значению, например:

//Get the existing text
var existingText = $("div#messages").text();

// Insert the already existing text plus the new one
$("div#messages").text(existingText + '<script>alert()</script>');

Или вы можете сделать это в одну строку:

$("div#messages").text($("div#messages").text() + '<script>alert()</script>');

Или вы можете использовать обратный вызов, упомянутый в комментариях @ Chris.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...