IE не может управлять "глобальными" переменными? - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть этот код:

<div class="riga" style="border-top:0;">
    <div class="col3" id="txtValoreCatastale">0,00 euro</div>            
</div>

<script type="text/javascript">
   txtValoreCatastale = $('#txtValoreCatastale');
</script>

Кажется, я получаю ошибку:

SCRIPT438: Object doesn't support this property or method
show, Row 33 Char 4

, которая сломает (на весь мой оригинальный код) некоторые измой сценарий!Но если бы я написал:

var txtValoreCatastale = $('#txtValoreCatastale');

, это прекрасно работает.

Почему это поведение?Еще одна серьезная ошибка?

Ответы [ 2 ]

4 голосов
/ 14 февраля 2012

Просто короткая мысль: когда вы указываете DIV с идентификатором, он становится глобальной переменной с этим именем.Итак, у вас уже есть глобальная переменная с именем txtValoreCatastale, которая является элементом DOM.Он должен работать нормально, если вы измените идентификатор или имя переменной.

1 голос
/ 14 февраля 2012

IE создает собственную глобальную переменную для каждого идентификатора элемента, который вы используете.Так что проблема в том, что IE уже создал свою собственную переменную с именем txtValoreCatastale.Добавляя перед ним var, вы говорите IE, что в области действия вашей функции это локальная переменная, и поэтому IE это позволяет.Если бы вы назвали его каким-то другим именем, например, someOtherVariableName, оно работало бы без var впереди.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...