如何使用jQuery查找和替换HTML实体?

时间:2009-08-01 16:56:23

标签: jquery

我使用HTML表为Drupal站点构建了一个日历模板,我有jQuery为每个空单元格添加一个“无文本”类:

$('table.calendar td:empty').addClass('no-text');

这很有效,但我的问题是CMS WYSIWYG编辑器会自动将HTML实体 添加到空单元格。因此,我试图事先找到并替换带有“真实”空间的实体,但jQuery无法找到它们:

$('table.calendar td').each(function() {
   var $this = $(this);
   var t = $this.text();
   $this.text(t.replace('[entity here]',''));
});

此代码段在替换普通字符串时效果很好,但 似乎有所不同!

所以我的问题是:如何使用jQuery来搜索和替换HTML实体?

5 个答案:

答案 0 :(得分:9)

最简单的事情是

$this.text(t.replace('\u00a0',''));

其中\u00a0 

的unicode字符

答案 1 :(得分:2)

尝试

replace(/& nbsp;/g, ''); 
没有&符号之后的空格。

答案 2 :(得分:1)

你试过.html()?

$ this.html( '');

答案 3 :(得分:1)

这是另一种有效的选择。

var nbsp = unescape("%a0");     // a0 is hex code point for  
$this.text(t.replace(nbsp,''));

答案 4 :(得分:1)

如果您的nbsp位于标记内,而不是外部js文件,则需要对html进行两次编码: