文档选择器和窗口选择器之间有什么区别?

我有以下JQuery函数,它接受用户输入并在屏幕上显示它。 当我选择$(document)$(window)该函数可以正常工作。 使用任一选择器有什么缺点? 我在哪里可以阅读更多关于这些选择器及其差异的信息?

先感谢您。

  $(document).keypress(function(e) { if(e.keyCode == 13) { var id = $("input#example").val() console.log(id); $('#data').append(id); } }); 

在jQuery dom选择器中使用windowdocument对象时,大多数时候你不会注意到两者之间的差异。

但是,重要的是要注意它们不是同一个对象。

window – 指视口。 它被用作JavaScript中的主要全局对象。
documentwindow的直接后代; 指文档树的根 。

所有DOM元素都是document的后代,它是window的直接后代。

$(window)选择器用于选择视口

$(document)选择器用于整个文档(即, 标记内的内容,即使它超出视口范围也是如此)。

包含在$( document ).ready()只有在页面文档对象模型(DOM)准备好执行JavaScript代码后才会运行。 包含在$( window ).on( "load", function() { ... })将在整个页面(图像或iframe)(而不仅仅是DOM)准备好后运行。

通过此链接进一步了解。

为了回答这个问题,让我从DOM的定义开始,我们通常称之为“ document ”。

文档对象模型(DOM)是用于有效HTML和格式良好的XML文档的应用程序编程接口(API)。 它定义了文档的逻辑结构以及文档的访问和操作方式。 在DOM规范中,术语“文档”在广义上使用。

现在让我解释一下我发现的关于browsing context的一些内容,因为这是DocumentWindow通常具有的关系 – 尽管重要的是要提到Document可能没有browsing context ,但你永远不应该看到用jquery。

用户与Document的主视图交互。 视图被定义为用于向用户代理呈现Document的媒体 – 例如屏幕,打印,语音。 主视图是默认视图,由实现Window接口的AbstractView对象表示。

说实话很简单, window是容器, document是内容。 但我建议至少浏览一下这个文档,以便更好地理解。

资料来源:

  • W3C – 什么是DOM ,
  • W3C – 浏览上下文