jQuery .ready()自动为DOM中的ID定义每个元素的变量

时间:2010-05-17 13:02:49

标签: javascript jquery

在使用jQuery .ready()函数时,我注意到了一些意外的行为,之后您只需使用其ID而无需事先定义就可以引用DOM中的元素:

<html>
<script src="jquery.js"></script>
<script>
        $(document).ready(function() {
                myowndiv.innerHTML = 'wow!'
        });
</script>
<body>
        <div id="myowndiv"></div>
</body>

</html>

在我打电话给myowndiv或其他任何内容之前,我原本希望在document.getElementById("myowndiv");$("#myowndiv");之前宣布并指定innerHTML

这种行为是否符合设计要求?有谁能解释为什么?我担心的是,如果我没有注意到并重构并最终没有使用.ready()甚至根本不使用jQuery,那么我的代码将无法执行大量undefined错误。

干杯!

1 个答案:

答案 0 :(得分:3)

这是一个(可怕的)仅限Internet Explorer的“功能”。微软再次失败......叹息。您需要var foo = document.getElementById('foo');才能实现跨浏览器兼容性。