0

<や>などの文字を含むhtmlコンテンツをエスケープするためにjQuerytext()メソッドを適用したいこの同じコンテンツがdivブロックに「追加」されるため、<と>をエスケープする必要があります

この例では、その方法がわかりません:http: //jsfiddle.net/n28uf/2/

<div class="container"></div>

jQuery(function(){
    var  content = '<hello world>';
    jQuery('.container').prepend(content); 
    // Where should I apply the .text() method?
}); 

私はこれを試しました:

    jQuery('.container').prepend(jQuery.text(content));

しかし、私はこのエラーメッセージを受け取ります:

    Uncaught RangeError: Maximum call stack size exceeded 

http://jsfiddle.net/n28uf/2/正しく機能させるために、コードにどのような変更を加える必要があるかについてのアイデアはありますか?

ありがとう

4

2 に答える 2

2

ラッパーdivを前に付けてから、それを使用してデータを入力するのは.text()どうですか?

jQuery(function(){
    var  content = '<hello world>';
    jQuery('.container').prepend('<div class="foo"></div>');
    jQuery('.foo').text(content);
}); 

http://jsfiddle.net/AfW5k/

于 2013-02-24T17:51:03.057 に答える
1
  1. を使用してコンテンツを一時的なjQueryオブジェクトに追加しtext()てエスケープします。
  2. を使用して、一時オブジェクトからエスケープされたコンテンツを取得しますhtml()
  3. エスケープされたコンテンツをコンテナの前に追加します。

サンプルコード:

<div class="container"></div>

<script type="text/javascript">
jQuery(function(){
    var content = '<hello world>';
    var escapedContent = jQuery('<div></div>').text(content).html();
    jQuery('.container').prepend(escapedContent); 
});
</script>

これにより、次のHTMLソースコードが生成されます。

<div class="container">&lt;hello world&gt;</div>

つまり、を使用text()してコンテンツをエスケープし、エスケープhtml()された文字を失うことなくコンテンツを取得するために使用します。

于 2013-02-24T18:09:02.307 に答える