2009-08-01 12 views
8

Mam zbudowany szablon kalendarza dla witryny Drupal przy użyciu tabeli HTML, i mam jQuery, aby dodać klasę „no-text” do każdej pustej komórki:Jak znaleźć i zamienić encje HTML na jQuery?

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

Działa to dobrze, ale moim problemem jest to, że edytor CMS WYSIWYG automatycznie dodaje jednostkę HTML   do pustych komórek. Mam więc próbowali znaleźć i zastąpić podmioty z „prawdziwym” przestrzeni wcześniej, ale jQuery nie je znaleźć:

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

Ten fragment działa dobrze przy wymianie normalny ciąg, ale   wydaje się czymś różne!

Moje pytanie brzmi następująco: w jaki sposób można użyć jQuery do wyszukiwania i zamiany encji HTML?

+0

głosowanie się, jak to jest dobre pytanie. ładnie zapytał. – elcuco

Odpowiedz

9

Najprostszym rozwiązaniem byłoby

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

Gdzie \u00a0 jest znak Unicode dla  

+0

Dzięki za wszystkie odpowiedzi, ludzie. Ten działał dobrze - okrzyki! – james6848

1

Czy próbowałeś .html()?

$ this.html ("');

2

spróbować

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

w/o przestrzeni po ampersand.

1

Jest to kolejna alternatywa, która działa.

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

Jeśli nbsp jest w tagu, zamiast pliku js zewnętrznych, html musi być zakodowany dwukrotnie:

  
Powiązane problemy