2013-03-28 59 views
1

有了这个网站:字符串替换使用jQuery

<blockquote class="stat"> 
    There are &rsquo;paper cups&lsquo; in there. 
</blockquote> 

我使用这个位的jQuery:

function replaceEntity(element, entity, replacement) { 
    $(element).each(function() { 
    $(this).html(function(i, html) { 
     return html.replace('‘', '<span class="rsquo">&rsquo;</span>').replace('’', '<span class="lsquo">&lsquo;</span>'); 
    }); 
    }); 
} 

生产这样的:

<blockquote class="stat"> 
    There are <span class="rsquo"><span class="lsquo">‘</span></span>paper cups<span class="lsquo"><span class="rsquo">’</span></span> in there. 
</blockquote> 

,但我想这一点:

<blockquote class="stat"> 
    There are <span class="rsquo">&rsquo;</span>paper cups<span class="lsquo">&lsquo;</span> in there. 
</blockquote> 

我如何才能

  1. 获取搜索扫描两个实体没有嵌套?
  2. 停止jQuery替换与UTF-8等效的html实体?

编辑

嵌套错误被链接到另一个开发者文档的另一个片段。我会最终删除这个问题。

+0

一旦您插入实体'HTML()'它们转换为实际的字符,因为这是被认为碰巧实际显示角色而不是实体。你可以使用'text()',但是也会暴露'span'标签 - > [** FIDDLE **](http://jsfiddle.net/etkZy/)? – adeneo 2013-03-28 00:17:22

+0

jQuery在这里没有什么可做的,因为你所要求的字符串替换是普通的JavaScript。 – sp00m 2013-03-28 00:27:00

+0

是不是html实体是不是非常重要的,嵌套跨度的问题是由于在另一个开发工作循环。去搞清楚。 – Niels 2013-03-28 00:40:47

回答

0

您可以使用此

$('.stat').text('There are <span class="rsquo">&rsquo;</span>paper cups<span class="lsquo">&lsquo;</span> in there.').html(); 

,但它没有解释像一个HTML元素