Esto aparentemente no está funcionando:
X = $td.text();
if (X == ' ') {
X = '';
}
¿Hay algo sobre un espacio que no se rompe o el signo comercial que no le gusta a JavaScript?
javascript
jquery
Phillip Senn
fuente
fuente
.text()
elimina el marcado, por lo tanto, no creo que lo encuentre
en un resultado sin marcado.Respuestas:
es una entidad HTML. Al hacerlo.text()
, todas las entidades HTML se decodifican a sus valores de caracteres.En lugar de comparar utilizando la entidad, compare utilizando el carácter sin formato real:
O también puede crear el carácter a partir del código del carácter manualmente en su forma de escape de Javascript:
Más información sobre
String.fromCharCode
está disponible aquí:Más información sobre códigos de caracteres para diferentes conjuntos de caracteres está disponible aquí:
fuente
Recuerde que
.text()
elimina el marcado, por lo tanto, no creo que lo encuentre
en un resultado sin marcado.Hecho en respuesta ...
Muestra una alerta, ya que en su lugar se devuelve el equivalente ASCII del marcado.
fuente
$("<div> </div>").text().charCodeAt()
da160
(unicode para nbsp)Esa entidad se convierte en el carácter que representa cuando el navegador muestra la página. JS (jQuery) lee la página renderizada, por lo que no encontrará tal secuencia de texto. La única forma en que podría encontrar algo así es si tiene entidades de codificación doble.
fuente
Los documentos de jQuery para
text()
diceYo usaría
$td.html()
en su lugar.fuente