0

我想应用 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/知道我应该对代码进行什么更改以使其正常工作吗?

谢谢

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 回答