在使用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
错误。
干杯!
答案 0 :(得分:3)
这是一个(可怕的)仅限Internet Explorer的“功能”。微软再次失败......叹息。您需要var foo = document.getElementById('foo');
才能实现跨浏览器兼容性。