Heim > Fragen und Antworten > Hauptteil
Wenn Sie eine Funktion definieren, die das Stilattribut eines Elements mithilfe einer Funktionsdeklaration ändert, wird ein Fehler gemeldet
Aber unter window.onload wird kein Fehler gemeldet
大家讲道理2017-07-05 11:01:56
宝宝 这个和你用什么函数没关系!是因为onload会把文档加载完才触发 而你肯定是因为文档没加载完 没找到元素 所以才报错 把js放到元素下面
PHP中文网2017-07-05 11:01:56
这和函数声明和匿名没有关系,而是和函数的调用时机有关系。
改成这样,还能找到和匿名函数的问题么?
function change () { /* ... */ }
window.onload = change
前者在调用时,box元素还没有,所以报了错;后者在DOM ready后调用,所以可以执行。你可以在change函数中log一下box对象看看。
扔个三星炸死你2017-07-05 11:01:56
问题不是这个,你需要知道文档是从上到下加载的,你把js文件放在了head
里
执行到js文件的时候,这个时候连body都还没加载,自然无法获取到box,也就无法设置css了。
你可以把js文件放到body
的尾部:
.
.
.
<script src="./x.js"></script>
</body>
这样就不需要window.onload
了
如果放在了head里面
就需要在js文件头部写window.onload=function(){......}