Apparemment, cela ne fonctionne 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 ?
Apparemment, cela ne fonctionne 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 ?
est une entité HTML. Lorsque l'on fait .text()
toutes les entités HTML sont décodées en leurs valeurs de caractères.
Au lieu de comparer en utilisant l'entité, comparez en utilisant le caractère brut réel :
var x = td.text();
if (x == '\xa0') { // Non-breakable space is char 0xa0 (160 dec)
x = '';
}
Vous pouvez également créer le caractère à partir du code du caractère manuellement dans sa forme échappée en Javascript :
var x = td.text();
if (x == String.fromCharCode(160)) { // Non-breakable space is char 160
x = '';
}
Plus d'informations sur String.fromCharCode
est disponible ici :
De plus amples informations sur les codes de caractères pour les différents jeux de caractères sont disponibles ici :
Wow. Cette réponse est si compliquée qu'elle doit être correcte ! (Moi et JavaScript sommes comme l'huile et l'eau). Mais peut-être que si on me secoue violemment, nous nous mélangerons.
Rappelez-vous que .text()
enlève le balisage, donc je ne pense pas que vous allez trouver
dans un résultat sans marquage.
Réalisé dans une réponse....
var p = $('<p>').html(' ');
if (p.text() == String.fromCharCode(160) && p.text() == '\xA0')
alert('Character 160');
Affiche une alerte, car l'équivalent ASCII de la balise est renvoyé à la place.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Comment cela ne fonctionne-t-il pas ? Que faites-vous alors avec X ?
0 votes
Oh, si je dis X=$td.html() cela fonctionne.
8 votes
Rappelez-vous que
.text()
enlève le balisage, donc je ne pense pas que vous allez trouver
dans un résultat sans marquage.1 votes
Je me trompe peut-être, mais text() ne développe-t-il pas les entités html ?
0 votes
@Brad - vous auriez dû en faire une réponse. =P
0 votes
@karim79/@ErikForbes : Bien, je vais faire en sorte qu'il réponde. ;p
0 votes
\u00A0 - unicode nbsp \x20 - espace ascii <p> P1nbsp</p> Dans la console du navigateur : / \u00A0 /.test($0.childNodes[0].nodeValue[0]) Affiche "true" (vrai)