2010-09-08 21 views
9

mam zmienną:Javascript struny - Pierwsze char w pewnym momencie

var text = "hello"; 

Chcę uzyskać 0 umieszczony znak, zatem:

var firstChar = text[0]; 

proste. W firefox i chrome to działa. W IE jednak zawsze wracam "niezdefiniowany"

Jakieś pomysły, dlaczego tak może być dzieje się w IE?

+3

Od teraz, aby dowiedzieć się, że wszystko działa w 'przeglądarek good' nie działa w' IE'. Myślę, że ludzie ze stwardnienia rozsianego chcieli wykreować dodatkowy wymiar poza obecnym kontekstem rozwoju sieci. –

+0

Dodatki: działa dobrze w IE8 (jak to piszę), aw IE7 zamiast rzucania błędu zwraca coś, co jest analizowane jako "NaN" zamiast eksplodować. Śledzenie tego problemu z pewnością trwało znacznie dłużej niż powinno ... – ANeves

Odpowiedz

17

Łańcuchy nie są dostępne jak tablice w IE (przed IE9). Zamiast tego można użyć charAt, który jest dostępny z różnymi przeglądarkami:

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

+1 dla * charAt() *. FWIW, IE8 w trybie standardowym i IE9 wspierają odwoływanie się do znaków w łańcuchach w stylu takich jak Chrome i Firefox. –

+0

Dzięki, to działa uczta w IE! – adamwtiko

1

Można użyć .substr().

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

Użyłbym tego, ponieważ jest najbardziej kompatybilny z różnymi przeglądarkami. –

0

Nie jestem pewien, dlaczego to nie działa, ale można spróbować użyć substr()