2010-09-08 6 views
9

j'ai une variable:chaînes Javascript - obtenir l'omble chevalier à un certain point

var text = "hello"; 

Je veux obtenir le 0 caractère positionné, donc:

var firstChar = text[0]; 

simple. Dans Firefox et Chrome cela fonctionne. Dans IE cependant je reviens toujours 'indéfini'

Des idées pourquoi cela pourrait se produire dans IE?

+3

A partir de maintenant, apprendre que tout ce qui fonctionne dans les navigateurs 'bonne' ne fonctionne pas dans' IE'. Je pense que les gens de MS voulaient coder une dimension supplémentaire en dehors du contexte de développement web actuel. –

+0

Addenda: fonctionne bien dans IE8 (comme j'écris ceci), et dans IE7 au lieu de lancer une erreur renvoie quelque chose qui est parsedInt'ed comme NaN au lieu d'exploser. Le suivi de ce problème a pris beaucoup plus de temps que prévu ... – ANeves

Répondre

17

Les chaînes ne sont pas accessibles comme des tableaux dans IE (avant IE9). Au lieu de cela, vous pouvez utiliser charAt, qui est disponible cross-browser:

var text = "hello"; 
var firstChar = text.charAt(0); 
// firstChar will be 'h' 
+1

+1 pour * charAt() *. FWIW, IE8 en mode standard et IE9 prennent en charge le référencement de caractères de type tableau dans des chaînes comme Chrome et Firefox. –

+0

Merci, cela fonctionne un régal dans IE! – adamwtiko

1

Vous pouvez utiliser .substr().

var firstChar = text.substr(0,1); 
+0

Je l'utiliserais car c'est le navigateur le plus compatible avec tous les navigateurs. –

0

Je ne sais pas pourquoi cela ne fonctionne pas, mais vous pouvez essayer d'utiliser substr()

Questions connexes