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

und die mmm.js DateiDom Parsing und Ausführung von JavaScript

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

Warum der obige Code funktioniert? Der folgende Code funktioniert nicht:

<script> 
    $('#box').css("background-color","black"); 
</script> 
<div id="box"></div> 

und das ist rational, da box ist nicht auf das Skript bekannt. Wie ist box dem externen Skript bekannt, da es über body platziert ist und ausgeführt wird, bevor <div id="box"></div> geparst wird?

+0

Ich denke, die Seite wird vollständig geladen, bevor die externe js. Nicht der Fall in Ihrer zweiten Situation. – Mihai

+0

"Warum funktioniert der obige Code?" - Es ... nicht. Hier ist [eine Live-Demo] (http://test-cases.dorward.me.uk/stackoverflow/36861279/) (Ich habe jQuery hinzugefügt, die Sie vergessen haben, in Ihren Testfall aufzunehmen), wenn der Code das Quadrat funktioniert hätte sei schwarz nicht rot. – Quentin

+0

Wenn das der komplette Inhalt von 'mmm.js' ist, dann funktioniert es nicht. Ich vermute, Sie haben uns nicht alle Fakten gegeben, und in dieser Datei befindet sich ein Handler für das Dokument bereit. – Archer

Antwort

-2

Ich habe versucht Ihren Code und es funktioniert nicht so oder so zu mir. In beiden Fällen ändert die Box den Hintergrund nicht.

Was Sie sollten tun, stellen Sie sicher, die Seite vollständig geladen ist, bevor der Hintergrund schwarz Schalt:

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

Sie dies in einer JS-Datei oder in Ihrem HTML platzieren können.

+1

"Wenn Sie den JavaScript-Code in eine Datei einfügen und aus Ihrem HTML aufrufen, lädt der Browser zuerst den HTML-Code." - '

Verwandte Themen