Aparentemente, isso não está funcionando:
X = $td.text();
if (X == ' ') {
X = '';
}
Existe algo sobre um espaço sem quebra ou o e comercial que o JavaScript não gosta?
javascript
jquery
Phillip Senn
fonte
fonte
.text()
remove a marcação, portanto, não acredito que você vá encontrar
um resultado sem marcação.Respostas:
é uma entidade HTML. Ao fazer isso.text()
, todas as entidades HTML são decodificadas para seus valores de caractere.Em vez de comparar usando a entidade, compare usando o caractere bruto real:
Ou você também pode criar o caractere a partir do código do caractere manualmente em sua forma de escape Javascript:
Mais informações sobre
String.fromCharCode
estão disponíveis aqui:Mais informações sobre códigos de caracteres para diferentes conjuntos de caracteres estão disponíveis aqui:
fonte
Lembre-se de que
.text()
remove a marcação, portanto, não acredito que você vá encontrar
um resultado sem marcação.Feito em resposta ...
Mostra um alerta, já que o equivalente ASCII da marcação é retornado.
fonte
$("<div> </div>").text().charCodeAt()
dá160
(unicode para nbsp)Essa entidade é convertida no char que representa quando o navegador renderiza a página. JS (jQuery) lê a página renderizada, portanto, não encontrará essa sequência de texto. A única maneira de encontrar tal coisa é se você estiver codificando entidades duplas.
fonte
A documentação do jQuery para
text()
dizEu usaria em
$td.html()
vez disso.fonte