2016-05-23 5 views
0

私はコメントとして名前の付いたクラスを持つ秩序リストを持っています。
私はmy_html_syntaxという変数に私のテキストエリアから値をプッシュしています。Jqueryの停止レンダリングHTML構文のエスケープjavascript変数

コードは正常に動作しますが、唯一の問題は、レンダリングからhtml構文を停止する方法です。 たとえば、ボタンをhtmに入力すると、ボタンがmy ulにレンダリングされます。これをjustinasする-thanksを解決し

どのように私は私のjavascriptの変数my_html_syntaxを逃れん

私はそれを使用する方法です。

<html> 

<head> 
<script type="text/javascript" src="https://code.jquery.com/jquery- 2.1.1.min.js"></script> 

<script> 

$(document).ready(function() { 

$('button').click(function() { 
function htmlEntities(str) { 
return String(str).replace(/&/g,'&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;'); 
} 

var my_html_syntax= $('#textarea').val(); 

$('ul').append('<li>' + htmlEntities(my_html_syntax) +'</li>'); 


    }); 
     }); 

</script> 

</head> 
<body> 
<textarea id="textarea" class="textarea" rows="4" cols="50"> </textarea> 

<button class="doit" id="doit" type="button" value="submit"> submit</button> 

<ul class="comments" id="comments"> asd </ul> 

</body> 

    </html> 
+0

それはjQueryオブジェクトの文字列ではありませんので、あなたは、 ')'ヴァル(によって返された値に 'テキストを()'を実行することができます。 – jcubic

+0

正規表現を使用して、 '$( 'textarea')のようにHTMLを取り除くことができます。 – jcubic

+0

[jQueryでHTML文字列をエスケープする](http: //stackoverflow.com/questions/24816/escaping-html-strings-with-jquery) – KeizerBridge

答えて

0

あなたは示すことをHTMLエンティティをエスケープすることができます

function htmlEntities(str) { 
 
    return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;'); 
 
} 
 

 
$(document).ready(function() { 
 
    $('ul').append("<li>" + htmlEntities("<a href='example.com'>LINK</a>") + "</li>"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul></ul>

Source

0

不正な方法を。

.text()を使用する必要があります。

$("<li></li>") 
    .text(my_html_syntax) 
    .appendTo($('.comments')); 

または.append()と:

$('.comments').append($("<li></li>").text(my_html_syntax)); 
関連する問題