Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dom解析和javascript执行_Javascript_Dom - Fatal编程技术网

Dom解析和javascript执行

Dom解析和javascript执行,javascript,dom,Javascript,Dom,为什么上面的代码有效?以下代码不起作用: $('#box').css("background-color","black"); $('#box').css(“背景色”、“黑色”); 这是合理的,因为脚本不知道box。外部脚本如何知道框,因为它位于正文上方,并在解析之前执行?我尝试了您的代码,但对我来说都不起作用。无论哪种方式,框都不会改变背景 在将背景切换为黑色之前,您应该确保页面已完全加载: <script> $('#box').css("background-color

为什么上面的代码有效?以下代码不起作用:

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

$('#box').css(“背景色”、“黑色”);

这是合理的,因为脚本不知道
box
。外部脚本如何知道
,因为它位于
正文
上方,并在解析
之前执行?

我尝试了您的代码,但对我来说都不起作用。无论哪种方式,框都不会改变背景

在将背景切换为黑色之前,您应该确保页面已完全加载:

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

您可以将其放入.js文件或HTML中。

我认为在获取外部js之前,页面已完全加载。第二种情况并非如此。“为什么上面的代码有效?”-它…不起作用。下面是(我添加了jQuery,您忘了将其包含在测试用例中),如果代码起作用,正方形将是黑色而不是红色。如果这是
mmm.js
的完整内容,那么它就不起作用。我怀疑你没有告诉我们所有的事实,文件中有一个文档处理程序。jQuery是在哪里定义的?@Quentin:我想知道拆分是否能解决问题,谢谢你用真实文件做了一个很好的测试,这在fiddle等人中是不可能的。“当您将javascript代码放入文件并从HTML调用它时,浏览器首先加载HTML。”——
元素,即使是带有外部
src
s的元素,也会阻止对DOM的解析(除非它们是延迟的或异步的,而这不是)。您是对的,第一个代码也不起作用,我只是在猜测。
<script>
  $('#box').css("background-color","black");
</script>
<div id="box"></div>
$( document ).ready(function() {
     $('#box').css("background-color","black");
});