$(文件)与$("文件")

Mac*_*Mac 10 javascript jquery document

有没有什么区别:$(document)$("document")

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

Bol*_*ock 19

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

$("document")尝试寻找一个<document>元素,这在HTML中显然没有意义,因为没有这样的元素,只有元素document在标记中表示的根对象<html>.它的行为方式是因为通过传递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"什么都不选择.第四种语法等待文档准备就绪,但暗示(错误地)它等待图像准备就绪.

  • 非常好的回答什么是*实际*问题.+1 (2认同)

use*_*716 7

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

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

你可以这样做:

$( "cheese pizza" ).ready(function() {});
Run Code Online (Sandbox Code Playgroud)

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

$(document).ready(function(){/*...*/});
Run Code Online (Sandbox Code Playgroud)

和:

$(function(){/*...*/});
Run Code Online (Sandbox Code Playgroud)

实际选择时document,你应该使用$(document).