2012-10-04 3 views
1

Quelqu'un peut-il m'expliquer cela? Je tente de faire quelque chose si key != ''chaîne vide jQuery non vide

var key = ""; 
if($('div[title="Keyword"]').text() != '') { 
    key = $('div[title="Keyword"]').text().trim(); 
} 

//this always alerts 
if (key != '') { alert(key); } 

//this never alerts 
if (!key) { alert(key); } 
+0

alerter la valeur de la clé avant le if et voir à quoi il correspond. Si ce n'est pas une chaîne vide, le premier 'if' passera. – 0x499602D2

+1

Que dit 'console.log (clé)'? – wroniasty

+0

J'ai mis en place un jsfiddle à http://jsfiddle.net/SPJPq/ et fonctionne comme je m'y attendais. Pouvez-vous reproduire le problème que vous voyez là? – Bill

Répondre

1

je l'ai dit dans les commentaires, il est peut-être un caractère invisible non dépouillé par trim. Eh bien, après vos autres commentaires, il est clair que c'est le cas. C'est le U+200B Zero-width space character. Cela vient probablement de jsfiddle (je parie que vous avez collé quelque chose à partir de là).