2010-07-28 62 views
7

我想逃避的HTML標籤實體名稱,從textarea以文本,並把結果在第二textarea使得:jQuery的轉義HTML從一個textarea

<mytag> 

成爲

&lt;mytag&gt; 

我使用.html().text()來回確定。我的問題是處理textarea元素,這有點不同。

它工作正常,如果我第一次把文成格:

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()); 

我想我的問題是,我不不理解如何在不操縱DOM元素的情況下操縱jQuery對象,比如字符串,因爲現在我使用的是div,因爲它有.html()方法。

任何幫助將是太棒了!

謝謝。

回答

5

嘗試

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

+1你比我快,但我不認爲你的第二個解決方案是可行的。它會給你只是文字內容。 http://jsfiddle.net/wtXBg/1/ – user113716 2010-07-28 13:26:10

+0

哇!謝謝...不能說我完全理解它是如何工作的,但它的工作原理! (第一個) 謝謝! – Wayne 2010-07-28 13:26:58

+0

@ patric - 我可以問你一些事嗎?...我的聲譽得分最近有點尷尬...有時候,它不會加上最高票數......這裏有一個bug嗎? – Reigel 2010-07-28 13:34:33