2011-11-07 18 views
15

Z powodu okoliczności poza moją kontrolą, SharePoint, mam następujący fragment kodu.Dopasowywanie jquery .text() do  

var item = $('<span><font size=1>&nbsp;</font></span>').text() 

Próbuję porównać tę wartość do &nbsp;.text() i nie wiem co robić. Przechodzenie przez kod item wydaje się być "" co ma sens. Ale wykonanie item == " " zwraca wartość false. Jak powinno się to robić?

EDIT: Przykład skrzypce

http://jsfiddle.net/hUBeP/2/

+0

Czy to rzeczywiście [znak 0xA0] (http://www.fileformat.info/info/unicode/char/a0/index.htm)? Ale myślę, że to może być zależne od przeglądarki - nie chciałbym na tym polegać. Czy pasuje do wyrażeń regularnych z odstępami białymi? – Rup

+0

Sprawdź to: http://stackoverflow.com/questions/5237989/nonbreaking-space – Samich

Odpowiedz

42

Spróbuj sprawdzanie '\xa0' (co jest postać stworzona przez &nbsp;):

var item = $("<span><font size=1>&nbsp;</font></span>").text(); 
alert("'" + item + "' " + (item == '\xa0')); 

http://jsfiddle.net/hUBeP/3/

+0

Zrobiłem to! @Rup - działa tylko w IE, więc zależność od przeglądarki nie jest problemem. Twoje zdrowie. – anothershrubery

+0

Właściwie działa również w Firefoksie - i prawdopodobnie także w innych przeglądarkach. – ThiefMaster

+0

Tak, przez przypadek dodałem ostatni komentarz niedokończony. Teraz zaktualizowany! – anothershrubery

0

porównać go do &nbsp;, jako że to treść, którą chcesz dopasować. Wygląda na to, że tak nie jest, ponieważ renderowana przeglądarka jest przestrzenią, a nie znakami. Porównanie go z &nbsp; powinno spowodować porównanie dwóch zestawów &nbsp; lub porównania dwóch identycznych spacji.

+0

Dobrze technicznie mógłbym porównać to z '$ ("

 

") .text()'. Ale rozwiązanie ThiefMaster jest znacznie czystsze. – anothershrubery

+0

Zgoda, zwłaszcza, że ​​nie przejmujesz się problemami z wieloma przeglądarkami. – yoozer8