JQuery экранирование HTML от Textarea - PullRequest
7 голосов
/ 28 июля 2010

Я хочу экранировать теги HTML для имен объектов, беря текст из textarea и помещая результат в секунду textarea, так что:

<mytag>

становится

&lt;mytag&gt;

Я использую .html() и .text(), ходя туда-сюда ОК.Моя проблема связана с элементом textarea, который действует немного по-другому.

Он прекрасно работает, если я сначала помещаю текст в div:

var htmlStr = $('#textareaInput').val(); //doesn't like .html() .text() ?
$('#dummy').text(htmlStr); // an object to hold the text that supports .html() 
$('#textareaOutput').val($('#dummy').html());

Но я хочу сделатьчто-то более простое, как это:

var htmlStr = $('#textareaInput').val(); 
$('#textareaOutput').val($(htmlStr).html());

Я думаю, моя проблема в том, что я не понимаю, как манипулировать объектами jQuery, например строками, без манипулирования элементами DOM, потому что сейчас я использую div, потому чтоу него есть метод .html().

Любая помощь будет фантастической!

Спасибо.

1 Ответ

5 голосов
/ 28 июля 2010

1001 * попробовать *

var htmlStr = $('#textareaInput').val(); 
$('#textareaOutput').val($('<div/>').text(htmlStr).html());
...