这是我的代码
<script>
function showin(box) {
cur = parseInt(document.getElementById(box).style.marginTop);
alert(cur);
}
showin('child');
</script>
<div id="parent" class="parent">
<div id="child" class="child" style="margin-top:-10px;">
</div>
</div>
为什么它没有给我任何警告信息?
答案 0 :(得分:5)
它无效,因为您在DOM准备好之前调用它并且可以计算保证金。
你应该这样做:
function showin(box) {
cur = parseInt(document.getElementById(box).style.marginTop);
alert(cur);
}
window.onload = function() {
showin('child');
}
答案 1 :(得分:1)
您在创建DOM之前调用该函数,
如果你正在使用jquery尝试包装showin('child');准备好文件:
$(document).ready(function(){
showin('child');
});
这将等到所有内容都被创建
编辑:或使用window.onload:)
答案 2 :(得分:1)
试试这个:
<script>
function showin(box) {
cur = parseInt(document.getElementById(box).style.marginTop);
alert(cur);
}
window.onload = function(){
showin('child');
}
</script>
<div id="parent" class="parent">
<div id="child" class="child" style="margin-top:-10px;">
</div>
</div>
由于您尝试在HTML上方运行showin javascript函数,因此在运行javascript时,div#child尚未呈现。
您必须查看并了解window.onload
答案 3 :(得分:0)
这是因为您的脚本在窗口准备好之前执行,并且没有获得您传递的元素并引发错误。此错误导致执行中断和javascript中断。请google获取Jquery的$(document).ready方法以了解更多信息