2016-04-26 7 views
-1
<script src="mmm.js"></script> 
<style> 
#box{ 
    width:150px; 
    height:150px; 
    background-color:red; 
} 
</style> 
</head> 
<body> 
    <div id="box"></div> 
</body> 

とmmm.js上記のコードが動作するのはなぜDOM解析およびJavaScriptの実行

$('#box').css("background-color","black"); 

を提出?

<script> 
    $('#box').css("background-color","black"); 
</script> 
<div id="box"></div> 
をして boxをスクリプトに知られていないので、これは合理的である:次のコードは動作しません。 bodyより上に置かれ、 <div id="box"></div>が解析される前に実行されるため、外部スクリプトは boxをどのように知っていますか?

+0

私はページが外部jsを得る前に完全にロードされていると思います。あなたの2番目の状況ではそうではありません。 – Mihai

+0

"なぜ上記のコードが機能するのですか?" - それは...できません。コードが正方形を処理した場合は、[ライブデモ](http://test-cases.dorward.me.uk/stackoverflow/36861279/)(私はあなたのテストケースに含めることを忘れたjQueryを追加しました)です赤ではなく黒である。 – Quentin

+0

これが 'mmm.js'の完全な内容なら、うまくいきません。私はあなたが私たちにすべての事実を与えていないと思うし、そのファイルに文書準備ハンドラがあります。 – Archer

答えて

-2

私はあなたのコードを試しましたが、それは私にどちらにも作用しません。いずれにせよ、ボックスは背景を変えない。

何をするべきことは、ページが完全に黒に背景を切り替える前にロードされていることを確認してくださいです:

$(document).ready(function() { 
    $('#box').css("background-color","black"); 
}); 

あなたは.jsファイルにしたり、HTML内にこれを置くことができます。

+1

"JavaScriptコードをファイルに入れてHTMLから呼び出すと、ブラウザはまずHTMLを読み込みます。" - '

関連する問題