2013-03-01 50 views
0

这里是我的代码如何阅读DIV

<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> 

为什么它不给我任何警告信息的上边距?

回答

5

它不工作,因为您在DOM准备好之前调用它并且可以计算边距。

而应该做的:

function showin(box) { 
    cur = parseInt(document.getElementById(box).style.marginTop); 
    alert(cur); 
} 
window.onload = function() { 
    showin('child'); 
} 
1

已创建DOM之前,您所呼叫的功能,

,如果你使用jQuery尝试包裹舒(“孩子”);准备一个文件中:

$(document).ready(function(){ 
    showin('child'); 
}); 

这将等到一切都建立

编辑:或使用的window.onload :)

+1

虽然这是正确的,请注意OP没有指定他使用jQuery。 – techfoobar 2013-03-01 18:50:51

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#子项还没有呈现。

你必须关注和理解window.onload

0

那是因为你的脚本执行之前,你的窗口已准备就绪,并没有得到你已经过去了,抛出一个错误的元素。这个错误会导致执行中断和JavaScript中断。请谷歌的JQuery的$(document).ready方法知道更多