2011-11-07 17 views
15

A causa di circostanze fuori dal mio controllo, SharePoint, ho il seguente pezzo di codice.Corrispondenza jquery .text() per  

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

sto cercando di confrontare il valore .text()-&nbsp; e non sanno cosa fare. Passare attraverso il codice item sembra uguale "" che ha senso. Ma fare item == " " restituisce false. Come dovrebbe essere fatto questo confronto?

EDIT: Esempio violino

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

+0

E 'in realtà [carattere 0xA0] (http://www.fileformat.info/info/unicode/char/a0/index.htm)? Ma penso che potrebbe dipendere dal browser: non vorrei fare affidamento su questo. Corrisponde a una regexp di spazio bianco? – Rup

+0

Check this out: http://stackoverflow.com/questions/5237989/nonbreaking-space – Samich

risposta

42

Prova a controllare per '\xa0' (che è il personaggio creato da &nbsp;):

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

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

+0

Questo lo ha fatto! @Rup: funzionerà solo in IE, quindi la dipendenza dal browser non è un problema. Saluti. – anothershrubery

+0

In realtà funziona anche in Firefox e probabilmente anche in altri browser. – ThiefMaster

+0

Sì, ho accidentalmente aggiunto l'ultimo commento incompiuto. Ora aggiornato! – anothershrubery

0

confrontarlo con &nbsp;, come quella è il contenuto che vuoi abbinare. Sembra non essere quello perché il rendering del browser è come spazio, piuttosto che caratteri. Confrontandolo con &nbsp; si dovrebbero confrontare due serie di &nbsp; s o due spazi identici da confrontare.

+0

Beh tecnicamente ho potuto confrontarlo contro '$ ("

 

") .text()'. Ma la soluzione di ThiefMaster è molto più pulita. – anothershrubery

+0

D'accordo, soprattutto perché non sei preoccupato per i problemi del browser. – yoozer8