jQuery如何将text()应用于变量

时间:2013-02-24 17:46:13

标签: jquery

我想应用jQuery text()方法来转义包含<等字符的html内容。或者> 这个相同的内容“预先”到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/知道我应该对代码进行哪些更改以使其正常工作?

感谢

2 个答案:

答案 0 :(得分:2)

如何预先设置包装器div,然后使用.text()填充它?

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

http://jsfiddle.net/AfW5k/

答案 1 :(得分:1)

  1. 使用text()将内容添加到临时jQuery对象以逃避它。
  2. 使用html()从临时对象中检索转义的内容。
  3. 将转义的内容添加到容器中。
  4. 示例代码:

    <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()检索它而不会丢失转义的字符。