0

これが私のコードです

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

なぜアラートメッセージが表示されないのですか?

4

4 に答える 4

5

DOM の準備が整い、マージンを計算できるようになる前に呼び出しているため、機能していません。

代わりに次のことを行う必要があります。

function showin(box) {
   cur = parseInt(document.getElementById(box).style.marginTop);
   alert(cur);
}
window.onload = function() { 
   showin('child'); 
}
于 2013-03-01T18:46:31.820 に答える
1

DOM が作成される前に関数を呼び出しています。

jquery を使用している場合は、showin('child'); をラップしてみてください。準備が整ったドキュメントで:

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

これは、すべてが作成されるまで待機します

編集:またはwindow.onloadを使用:)

于 2013-03-01T18:49:44.217 に答える
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を見て理解する必要があります

于 2013-03-01T18:49:46.477 に答える
0

これは、ウィンドウの準備が整う前にスクリプトが実行され、渡した要素を取得せずにエラーがスローされるためです。このエラーにより、実行が中断され、javascriptが中断されます。詳細については、Jqueryの$(document).readyメソッドをグーグルで検索してください。

于 2013-03-01T18:55:43.770 に答える