IE无法管理“全局”变量?

时间:2012-02-14 10:32:47

标签: javascript jquery internet-explorer

我有this代码:

<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 个答案:

答案 0 :(得分:4)

快速思考:当您使用id指定DIV时,它将成为具有该名称的全局变量。所以你已经有了一个名为txtValoreCatastale的全局变量,它是一个DOM元素。如果您更改ID或变量名称,它应该可以正常工作。

答案 1 :(得分:1)

IE为您使用的每个元素ID创建自己的全局变量。所以问题是,IE已经创建了自己的变量txtValoreCatastale。通过在它前面添加var,你告诉IE,在你的函数范围内它是一个局部变量,所以IE允许它。如果你把它叫做someOtherVariableName之类的其他名称,它就可以在前面没有var。