$(文件)与$(“文件”)

$(document)$("document")之间有什么区别吗?

编辑:也进入.ready()例如$("document").ready()

$(document)使用jQuery来包装全局document对象。

$("document")试图寻找一个元素,这在HTML中显然没有意义,因为没有这样的元素,只有元素在标记中表示的根document对象。 它的行为方式是因为通过传递jQuery函数一个字符串,你实际上给它一个选择器 。

重新编辑:正如patrick dw所说,在ready()的上下文中没有任何区别,实际上从jQuery 3.0开始使用$(document)或显式调用ready()已被弃用。 从文档 :

jQuery提供了几种附加在DOM准备就绪时运行的函数的方法。 以下所有语法都是等效的:

  • $( handler )
  • $( document ).ready( handler )
  • $( "document" ).ready( handler )
  • $( "img" ).ready( handler )
  • $().ready( handler )

从jQuery 3.0开始,建议只使用第一种语法; 其他语法仍然有效但不推荐使用。 这是因为选择与.ready()方法的行为没有关系,这是低效的,并且可能导致对方法行为的错误假设。 例如,第三种语法适用于"document" ,它不选择任何内容。 第四种语法等待文档准备就绪,但暗示(错误地)它等待图像准备就绪。

如果您正在谈论调用.ready()函数,它(当前)没有任何区别。

在这两种情况下,参数都被忽略。

你可以这样做:

 $( "cheese pizza" ).ready(function() {}); 

要明确的是,最好使用官方支持的.ready()调用,它们是:

 $(document).ready(function(){/*...*/}); 

和:

 $(function(){/*...*/}); 

实际选择document ,应使用$(document)

您的第一个示例将在JS中搜索名为document的变量或对象。 (小心,这是一个预定义的变量)

第二个将在页面中搜索名为“document”的标签。

 var document = 'div#logo'; $(document); //will search for div#logo $('document'); //will search for document 

document是一个预制的全局变量,它是当前HTML文档的表示forms,是window.document缩写。

正如@BoltClock指出的那样, $("document")将使用该字符串作为元素的选择器。