2010-09-08 10 views
9

que tienen una variable:cadenas JavaScript - Conseguir el carbón en un cierto punto

var text = "hello"; 

quiero conseguir el carácter 0 posicionado, por lo que:

var firstChar = text[0]; 

simple. En Firefox y Chrome esto funciona. En IE, sin embargo, siempre vuelvo 'indefinido'

¿Alguna idea de por qué esto podría estar pasando en IE?

+3

A partir de ahora, saber que todo lo que funciona en los navegadores 'good' no funciona en' IE'. Creo que la gente de MS quería codificar una dimensión extra aparte del contexto de desarrollo web actual. –

+0

Addenda: funciona bien en IE8 (mientras escribo esto), y en IE7 en lugar de arrojar un error, se devuelve algo que se analiza como No NaN en lugar de explotar. El seguimiento de este problema tomó mucho más tiempo de lo que debería ... – ANeves

Respuesta

17

No se puede acceder a cadenas como arreglos en IE (antes de IE9). En su lugar se puede utilizar charAt, que está disponible a través del navegador:

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

+1 para * charAt() *. FWIW, IE8 en modo estándar e IE9 admiten referencias de estilo de matriz de caracteres en cadenas como Chrome y Firefox. –

+0

¡Gracias, esto funciona como un regalo en IE! – adamwtiko

1

Usted puede utilizar .substr().

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

Lo usaría ya que es el más compatible con múltiples navegadores. –

0

no estoy seguro de por qué esto no funciona, pero se podría tratar de usar substr()

Cuestiones relacionadas