Символ строки по индексу в IE
Здравствуйте, уважаемые.
Как так случилось, что в IE условие ложно?
var str = 'I love you tetya Motya!'
if(str[0]=='I'){
document.write('Yes :)');
}else{
document.write('No :(');
}
Разве символ строки нельзя получить по его индексу? Или это фишка JVscriptа Спасибо. |
ваше условие истинно, и работает в IE
|
Хорошо, вот прилагаю скрин, на нем код и результат работы в браузерах: Хром, Файрфокс, Опера и, собственно, Осел 6-ой и 8-ой версий.
![]() Я еще могу предположить, что IETester может как-то глючит, но IE8 у меня самый настоящий от Microsoft, который прилагается к win7. Поэтому как минимум в данном приведенном случае IE считает, что условие ложно :) Например, вот на это: var str = 'Some text'; document.write(str[5]); IE выводят undefined. Безобразие... |
"I love you tetya Motya!".charAt(0) |
Благодарю за метод.
Вычитал, что обращение к символам, как к элементам массива не стандартизировано и некоторыми браузерами не поддерживается. Опытным путем выяснилось, что некотороые браузеры - это эксплореры. С уважением. |
Вложений: 1
скрин из ие8 с прежней версией скрипта
а чтоб везде работало можно так
<script language="JavaScript" type="text/javascript">
var str = 'I love you tetya Motya!'
str = str.split('');
if(str[0]=='I'&&str[7]=='y'){
document.write('Yes :)');
}else{
document.write('No :(');
}
</script>
|
Ну Вы же не думаете, что я Вас обманываю. У меня IE8 выдает то, что на скрине.
Не знаю, может быть дело в доктайпе, у Вас я вижу он задан? Не думал, что он на работу javascript влияет. Спасибо. Добавлено: Установил доктайп xhtml 1.0 strict, и IE8 стал считать условие истинным. IE6-7 как раньше - ложным. |
vahrusha, вы невнимательны, рони показал, что строку можно преобразовать в массив односимвольных строк:
Цитата:
|
Цитата:
Всем отписавшимся спасибо. |
| Часовой пояс GMT +3, время: 15:10. |