2017-02-23 48 views
1

我想將字符串"{<A+_2OF3_MSF}"傳遞給jQuery的HTML函數。由於特殊字符<,它不起作用。我嘗試使用escapeHtml函數對HTML標籤進行編碼/轉義,但之後我面臨另一個問題。jQuery的HTML函數不能使用特殊字符

var escapeHtml = function(theString) { 
      return theString.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'); 
     }; 

其追加HTML編碼的字符串文本,而不是HTML。我看到了下面的Stack Overflow帖子,但是之後它建議在編碼後解碼它。如果我這樣做,我會回到原點。

Appending HTML-encoded string as HTML, not as text

我創建了一個小提琴:

https://jsfiddle.net/1aktfzm8/

+3

不要那樣做。你應該使用'text',而不是'html'。 – SLaks

+0

謝謝@SLaks!我嘗試過,但它不適合我。我有一個.css('someClass')。html(formattedData).appendTo(container); text()函數不適合這裏。我收到錯誤。 – user911

回答

4

您需要使用.text(),而不是.html()

$(document).ready(function(){ 
 
    $("button").click(function(){ 
 
     $("p").html("<span id=\"span\"> {A+_\"2OF3_MSF\"} </span>"); 
 
     $('#span').text(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button>Change content of all p elements</button> 
 
<p>This is a paragraph.</p> 
 
<p>This is another paragraph.</p>

+0

這不適合我。我有一個.css('someClass')。html(formattedData) .appendTo(container); text()函數不適合這裏。我收到錯誤。 – user911

+0

可以請您詳細說明嗎? – m87

+0

字符串可能是html {A + _2OF3_MSF}。 text()是否工作? – user911