为什么文件在$(document).ready();不需要像你在jquery中操作的其他元素那样引用?

时间:2014-05-02 07:23:53

标签: jquery

我是编码的新手,希望有一个强大的理解基础

例如:

$(document).ready(function(){

    $('div').fadeOut('fast'); 
});

3 个答案:

答案 0 :(得分:3)

因为document是一个预定义的全局变量,它是对当前文档对象的引用。当您使用带有$()的字符串时,您会给它一个CSS选择器来查找文档中的匹配元素。

答案 1 :(得分:1)

因为document是表示DOM中对象的变量,而不是字符串。传递'div''.my-class'之类的东西是您传递给Sizzle(jQuery中使用的选择器引擎)的选择器。

jQuery也可以接受DOM对象作为参数,并将围绕它们生成jQuery集合。

例如,以下内容也有效:

$(window).resize();

你甚至可以做这样的事情(虽然这在很大程度上是学术性的,但为什么你在野外这样做,我不知道):

var myDiv = document.getElementById('myDiv'),
    $myDiv = $(myDiv);

答案 2 :(得分:0)

文档不是DOM中的元素。这是窗户的财产。并且JavaScript在范围内有一个对象可供使用。所以这个选择器:

$(document)

引用该对象,将其包装在jQuery函数中,以基于原始对象创建jQuery对象。同样的事情发生了很多。例如,您可以这样做:

var someElement = document.getElementById('someId');

现在someElement是一个对象。 (巧合的是,它恰好指向DOM中的HTML元素,但这并不重要。)它可以包装为jQuery对象:

$(someElement)