Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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
Javascript 这两种jQuery用法之间的区别是什么_Javascript_Jquery_Html_Logic_Concept - Fatal编程技术网

Javascript 这两种jQuery用法之间的区别是什么

Javascript 这两种jQuery用法之间的区别是什么,javascript,jquery,html,logic,concept,Javascript,Jquery,Html,Logic,Concept,我是一个jquery初学者,所以如果是错误的,请原谅我:) 我只是想知道为什么将内容放在不同的位置会使这个脚本起作用,尽管我认为脚本最好保存在文档的标题部分。请解释一下这个概念 工作代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Example 2</title

我是一个jquery初学者,所以如果是错误的,请原谅我:)

我只是想知道为什么将内容放在不同的位置会使这个脚本起作用,尽管我认为脚本最好保存在文档的
标题部分。请解释一下这个概念

工作代码

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Example 2</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

<p>
</p>

<script type="text/javascript">
jQuery("p").html("Check if jQuery Supports Ajax method : "+ jQuery.support.ajax );
</script>

</body>
</html>

例2

jQuery(“p”).html(“检查jQuery是否支持Ajax方法:”+jQuery.support.Ajax);
不工作

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Example 2</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
jQuery("p").html("Check if jQuery Supports Ajax method : "+ jQuery.support.ajax );
</script>
</head>

<body>

<p>
</p>

</body>
</html>

例2
jQuery(“p”).html(“检查jQuery是否支持Ajax方法:”+jQuery.support.Ajax);


在第二个实例中,代码是在将
解析到DOM树之前执行的,因此尽管它仍然有效,但没有地方可以将输出文本放入其中。换句话说,
jQuery(“p”)
不匹配任何元素,因此
.html()
“什么也不做”

您可以通过等待DOM完全解析来解决此问题:

jQuery(function() {
    jQuery("p").html(...);
});

或者通过使用不依赖于现有
的输出机制,例如
alert()
console.log()

那么,您的浏览器似乎首先加载
部分,因此在第二个示例中没有
p
元素


在这两种情况下,您都应该将代码包装在
$(function(){…})

中。如果将脚本放在
元素之前,则在加载/解析DOM树之前执行脚本。因此,
元素不存在且无法找到。你可以:

  • 将脚本放在
    标记之后(如第一个示例中所示)

  • 或者,您可以在触发
    ready
    事件后调用函数:

    $(document).ready(function() {
      jQuery("p").html("Check if jQuery Supports Ajax method : "+ jQuery.support.ajax );
    });
    

阅读以下内容:@YouQi-thx链接..jquery似乎非常庞大:)