2009-08-01 11 views
8

私はHTMLのテーブルを使用してDrupalサイトのカレンダーテンプレートを構築してきた、と私は空の各セルにクラスの無テキスト」を追加するためのjQueryを持っている:jQueryでHTMLエンティティを検索して置き換えるにはどうすればよいですか?

$('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エンティティを検索して置き換えることができますか?

+0

は、アップ投票します。うまく尋ねられた。 – elcuco

答えて

9

最も簡単な方法は、\u00a0これは動作します別の代替である 

+0

ありがとうございました。これはうまく働いた - 歓声! – james6848

1

.html()を試しましたか?

$ this.html( '');

2

はアンパサンドの後にスペースO/W

replace(/& nbsp;/g, ''); 

を試してみてください。

1

のUnicode文字です

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

だろう。あなたのNBSPは、タグ内にある場合

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

は、むしろ外部JSファイルよりも、HTMLは二回エンコードする必要があります:それは良い質問だと