Cela ne fonctionne apparemment pas:
X = $td.text();
if (X == ' ') {
X = '';
}
Y a-t-il quelque chose à propos d'un espace insécable ou de l'esperluette que JavaScript n'aime pas?
javascript
jquery
Phillip Senn
la source
la source
.text()
supprime le balisage, donc je ne pense pas que vous allez trouver
un résultat sans balisage.Réponses:
est une entité HTML. Ce faisant.text()
, toutes les entités HTML sont décodées selon leurs valeurs de caractère.Au lieu de comparer en utilisant l'entité, comparez en utilisant le caractère brut réel:
Ou vous pouvez également créer le caractère à partir du code de caractère manuellement dans sa forme d'échappement Javascript:
Plus d'informations sur
String.fromCharCode
sont disponibles ici:Plus d'informations sur les codes de caractères pour différents jeux de caractères sont disponibles ici:
la source
N'oubliez pas que cela
.text()
supprime le balisage, donc je ne pense pas que vous allez trouver
un résultat sans balisage.Conçu pour une réponse ...
Affiche une alerte, car l'équivalent ASCII du balisage est renvoyé à la place.
la source
$("<div> </div>").text().charCodeAt()
donne160
(unicode pour nbsp)Cette entité est convertie en caractère qu'elle représente lorsque le navigateur affiche la page. JS (jQuery) lit la page rendue, il ne rencontrera donc pas une telle séquence de texte. La seule façon dont il pourrait rencontrer une telle chose est si vous êtes des entités à double codage.
la source
La documentation jQuery pour
text()
ditJ'utiliserais à la
$td.html()
place.la source