IE无法管理"全局"变量?



我有这个代码:

<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');

它工作得很好。

为什么会有这种行为?又是一个巨大的bug?

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

IE为您使用的每个元素id创建自己的全局变量。所以问题是,IE已经创建了自己的变量txtValoreCatastale。通过在它前面添加var,你告诉IE在你的函数范围内它是一个局部变量,所以IE允许它。如果你叫它其他的名字,比如someOtherVariableName,它在前面没有var的情况下就会工作。

最新更新