我有以下JQuery函数,它接受用户输入并在屏幕上显示它。当我同时选择$(document)
和$(window)
时,该功能起作用。使用任一选择器有什么缺点?我在哪里可以阅读更多关于这些选择器及其差异的内容?
提前谢谢你。
$(document).keypress(function(e) {
if(e.keyCode == 13) {
var id = $("input#example").val()
console.log(id);
$('#data').append(id);
}
});
答案 0 :(得分:21)
$(window)
选择器用于选择视口
$(document)
选择器用于整个文档(即<html>
标记内的内容,即使它超出视口范围也是如此。)
答案 1 :(得分:12)
在jQuery dom selector中使用window
或document
对象时,大部分时间您都不会注意到两者之间的差异。
但是,重要的是要注意它们不是同一个对象。
window
- 指视口。它被用作JavaScript中的主要全局对象。
document
- window
的直接后裔;是指root of the document tree。
所有DOM元素都是document
的后代,window
是{{1}}的直接后代。
答案 2 :(得分:1)
要回答这个问题,让我先从DOM的定义开始,我们通常称之为“document
”。
文档对象模型(DOM)是用于有效HTML和格式良好的XML文档的应用程序编程接口(API)。它定义了文档的逻辑结构以及访问和操作
document
的方式。在DOM规范中,术语“文档”在广义上使用。
现在让我解释一下我发现的关于browsing context
的一些内容,因为这是Document
和Window
通常所拥有的关系 - 尽管提到这一点很重要Document
可能不存在browsing context
,但您永远不应该使用jquery看到它。
用户与Document
的主视图进行交互。视图被定义为用于向用户代理呈现Document
的媒体 - 例如。屏幕,打印,演讲。主视图是默认视图,由实现AbstractView
接口的Window
对象表示。
简单来说,window
是容器,document
是内容。但我建议至少浏览一下这个文档,以便更好地理解。
来源: